Twitter API で PythonでOAuth2でログイン!



こんにちは。Orange Forestのはしもとです。

先週から進めてまいりましたTwitter API作業。
Twitterの「リスト」に登録されているアカウントの一覧を入手して、アカウント名をコピペとかできるといろいろ楽そうだな!
ということでやってきまして、この記事でついに最終回! … はまだ早かった…。
今回はAPIを使ってTwitterにログインするところまでできましたのでシェアします!

作業の流れ

1. Twitter Developer登録 ★完了
2. App(アプリ)使用申請・審査 ★完了
3. 新規Appを作成 ★完了
— ↓今日はここから↓ —
4. APIキーを取得
5. Auth(Twitterログイン)スクリプトを作成
6. リスト取得スクリプトを作成

4. APIキーを取得

参考にしたサイト:
https://miyastyle.net/twitter-api#2TwitterAPI

まず、Twitter のDeveloperサイトにいき、ログインしてAppsを選択。

詳細画面から「Keys and tokens」に行ってアクセストークンを発行。

コンシューマAPIキー、シークレット、アクセストークンとアクセストークンシークレットの計4つの文字列をメモ。


そしてPermissionを「Read,write,Direct Messages 」に変更しました。
(いらないかもしれないがいちおう)

5. Auth(Twitterログイン)スクリプトを作成

参考サイト:

https://developer.twitter.com/en/docs/basics/authentication/guides/single-user

このTwitter 解説によると、PythonでAuthを実現する場合 Python-OAuth2 ライブラリがけっこう実績あるらしいので、使ってみます。

https://github.com/joestump/python-oauth2

Downloadはpipで。

$pip install oauth2

よしpythonでAuth処理を動かしてみます。参考サイトはこちら:

https://github.com/joestump/python-oauth2/wiki/Twitter-Three-legged-OAuth

https://developer.twitter.com/en/docs/basics/authentication/guides/single-user

コマンドモード(っていうんだっけ?)で実行。

$ python -V
Python 2.7.15
$ python
>>> import urlparse
>>> import oauth2 as oauth
>>> url = 'https://api.twitter.com/1.1/followers/ids.json'
>>> http_method="GET"
>>> post_body = ""
>>> http_headers=None
>>> consumer = oauth.Consumer(key='コンシューマAPIキー',secret='コンシューマAPIのシークレットキー')
>>> token = oauth.Token(key='アクセストークン',secret='アクセストークンのシークレット')
>>> client = oauth.Client(consumer,token)
>>> resp,content = client.request(url,method=http_method, body=post_body, headers=http_headers )
>>> print content
{"ids":[xxxxx,yyyyyy,(略),ZZZZZ],"next_cursor":0,"next_cursor_str":"0","previous_cursor":0,"previous_cursor_str":"0","total_count":null}
>>> 

フォロワーさんのID一覧が取得できた! 
最後の ‘print content’ で出てきたids の数が、自分のアカウントのフォロワーさんの数と一致しました! やったー。

ではいよいよ、次回最終回! urlのところを改造して、リスト一覧と、各リストに登録されているアカウント一覧を入手するようにします。
ではまた〜!


投稿日

カテゴリー:

投稿者:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください