ほぼPython

Not技術ブログBut勉強ブログ 内容には誤りがあることが多いです

PythonとFlaskとHerokuでTwitterのOAuth認証ページを作った

今日は久しぶりに時間が取れたので、pythonツイッターの認証ページを作りました。

認証ページというのはこういうやつです。誰もが一度は見たことあると思います。

f:id:short_4010:20180401142831j:plain

これをPythonとFlaskとHerokuで実装しました。

 

デモはこちら!(認証が完了すると、oauth_tokenとoauth_token_secretが表示されます)

ツイッター認証デモページ

 

ネット上には、コピペでそのまま認証ページを作れるようなコードはなかなか見当たらなかったので、GitHubにプロジェクトをすべて載せておきます。

github.com

 

 

Twitter Application Management で callback_urlなどを適切に設定して各コードに書いてある各自設定するの部分を変更してherokuにデプロイすれば動くはずです。(たぶん)

認証出来たら、その oauth_tokenとoauth_token_secretを使って認証したユーザーのツイッターの情報をいじれるはずです。(たぶん)

 

おおまかな処理の流れとしては

 

誰かがhttps://twicertest.herokuapp.com/にアクセス

 

→リクエストークン(oauth_token)を取得

 

→リクエストークンを使って認証ページへリダイレクト

(例:https://twitter.com/oauth/authorize?oauth_token=hoge0)

 

→認証したらcallbackで設定したURLにgetパラメータ(oauth_tokenとoauth_verifier)を付加して戻る(今回は最初にアクセスしたページとコールバック先のページは同じ)

(例:https://twicertest.herokuapp.com/oauth_token=hoge0&oauth_verifier=hoge1)

 

→このgetパラメータの値を使ってアクセストークン(oauth_tokenとoauth_token_secret)を取得(ちなみにここでのoauth_tokenは上2つのoauth_tokenとは別のものになっている、なぜ名前が同じなのかよくわからない、紛らわしい。自分のせいかな?)

 

→それらを表示(実際はここでこれらの値を利用して行いたい処理を書く)

 

結構時間はかかりましたが、そこまで苦労なく作ることができました。

次はこの機能を使ってwebアプリを作りたいと思います。

 

これらのページが非常に参考になりました。

Twitter REST APIの使い方

[Twitter OAuth] pythonでtwitterアカウントのアクセストークン(access token)を取得する(OAuth認証) - Qiita