読者です 読者をやめる 読者になる 読者になる

tweepy と flask でwebアプリケーション認証

webアプリの認証→コールバックURLでごにょごにょするのに苦労したのでメモ

とりあえずTwitter Developersでアプリケーション登録
"Callback URL"はttp://hogehoge/oauth/callback にした

アプリケーション認証に飛ばす部分

@app.route('/authorize')
def authorize():
    url = auth.get_authorization_url()
    url = re.sub( 'authorize','authenticate', url )
    return redirect( url )
↑これの前にさっき登録したConsumer_keyとConsumer_secretを使って
auth = tweepy.OAuthHandler( ckey, csecret )
しておく。
"ttps://api.twitter.com/oauth/authenticate"にすると、未ログイン状態の場合は"authorize"と同じ動き
ログイン状態で以前取得したアクセストークンが有効であれば、認証画面を出さず、即座にoauth_verifierを返すらしいです。

コールバック

@app.route('/oauth/callback', methods=['GET'])
def callback():
    token = request.values.get('oauth_token', '')
    verifier = request.values.get('oauth_verifier', '')

    try:
        auth.get_access_token( verifier )
    except tweepy.TweepError:
        return 'Error! Failed to get access token.'

    return "Access token : %s<br />Access token secret : $s" % ( auth.access_token.key,
                                                                auth.access_token.secret )
GETの引数?みたいなのは
request.values.get('oauth_token', '')
で取り出せるらしいです。
POSTは
request.form['name']
ぽい

そんな感じでした。

参考
Authentication Tutorial — tweepy v1.4 documentation
殆どこれのコピペで行けました。
PythonでWebアプリ開発入門のススメ Flask/MongoDB - mizchi log
flaskその他もろもろの使い方はここ見た