DjangoでTwitterのOAuth認証をする
2013年1月30日
DjangoでTwitterアカウントによるOAuth認証をするための方法まとめと実装例です
あまりまとまっても理解してもいないので、走り書き程度の駄文でスマソ
あまりまとまっても理解してもいないので、走り書き程度の駄文でスマソ
環境は、Django-1.4.3、Python-2.7.3、tweepy-1.13
もしかして: django-allauth
django-allauth という、
各種ソーシャルアカウントによる認証モジュールがあるそうです
詳細不明ですが、おそらくTwitter認証もあるんじゃないでしょうか?
実装しちまった後にDjango勉強会で知りました。くそがぁ
そっちから調べた方が、あなたのキャリアに将来的に貢献することは間違いありません
各種ソーシャルアカウントによる認証モジュールがあるそうです
詳細不明ですが、おそらくTwitter認証もあるんじゃないでしょうか?
実装しちまった後にDjango勉強会で知りました。くそがぁ
そっちから調べた方が、あなたのキャリアに将来的に貢献することは間違いありません
TwitterのDevelopersサイトでアプリ登録
- https://dev.twitter.com/を開いてログイン
- 右上のアイコンから「My applications」をクリック
- 「Create a new application」をクリック
- ローカル開発用に使いたいなら、事前に 127.0.0.1 に適当なドメインを hosts で割り振る。
URLを入れる各所で、http://localhost/ は許容されていないため - Name, Description, Website, Callback 全部を入れる。後で書く自分の例で言うと Name=[てきとう], Description=[てきとう], Website=[http://localhost.kjirou.net/], Callback=[http://localhost.kjirou.net/auth_callback/]
- 後で編集したり入力エラーで値を変えた場合に、更新成功したはずなのに値が変わってない様に見えることがある、単にサイトのバグだと思う、その場合はページ再表示
- 作成し終わったら「OAuth tools」タブを開いておく、今回使うのはここの「Consumer key」と「Consumer secret」だけ
tweepyのインストール
pip install tweepy
実装例
とりあえずは、サンプルコードとしてここを開いて下さい
以下、補足:
- 先の Consumer key と Consumer secret が、TWAUTHORIZER_CONSUMER_KEY と SECRET に入っているとする
- 認証は auth ビューを叩かせると自動でTwitter側へリダイレクトして開始
- 先の http://localhost.kjirou.net/auth_callback/ に auth_callback ビューがマッピングされているものとする、
Twitter側で認証が完了するとここにリダイレクトする - api.me() の辺りまでが OAuth としての処理サンプル、後はこのアプリ独自の処理