Python3でTwitterAPIを使う方法をどのサイトよりも丁寧に解説する
最近Python3を使って日々の作業を便利なスクリプトにまとめたり自動化しているのですが、
ターミナル(シェル)からTwitter触れたら便利じゃね?っと思ったのでまとめてみました。
めちゃくちゃ丁寧に解説しましたのでこれさえ読めば、
今日からPython3 DE Twitteのタイムラインを表示することができます。
TwitterクライアントをPythonで作ってみたい方はぜひ参考にしてください。
TwitterAPIへつなぐための認証情報(トークン)を用意
TwitterAPIを使用するには認証情報(トークン)が必要です。
ですが、このトークン情報を取得するのが思ったより敷居が高いので、
トークンを取得する方法を順をおって解説します。
すでにトークンを取得済みの方はこの手順を飛ばしてコードを組んでいきましょう。
Twitterアプリケーション登録画面にアクセス
Twitterにログインした状態で https://apps.twitter.com にアクセスしてください。
"Create New App"ボタンが表示されているので、ボタンを押下します。
Twitterにログインしていない場合、"Create New App"ボタンが表示されませんので、
右上の"Sign in"リンクからTwitterにログインしてください。
Twitterアプリケーションを登録するために情報を入力
Twitterアプリケーション登録をするために必須情報を入力します。
・Name(アプリケーション名)
・Description(アプリケーションの概要)
・Website(作った人のサイトURL)が、
必須入力項目です。"Callback URL"は今回は使用しませんので空欄のままにしておきます。
また、Twitterアプリケーションの利用規約に同意しなければ、APIを利用することができません。
利用規約を読んで同意できる場合は、"Yes, I have read and agree to the Twitter Developer Agreement."の
チェックボックスを選択して、"Create your Twitter application"ボタンを押下して進んでください。
(エラーが出た場合) Error You must add your mobile phone to your Twitter profile before creating an application...
上記の画像のエラーが表示され、次に進めないときはTwitterアカウントへ電話番号の登録が必要になります。
このエラーが表示されていない場合は下記手順は必要ありませんので飛ばしてください。
通常のTwitter(https://twitter.com)にアクセスしてアカウントの設定から電話番号を登録します。
電話番号登録画面
左のサイドメニューより"モバイル"を選択し電話番号を入力した後に"続ける"ボタンを押下します。
SMSで送られてくるコードの入力
前の画面で入力した電話番号宛てのSMSにコードが送られてくるので、
そのコードを入力します。
電話番号情報登録完了
上記スクショの画面が表示されると電話番号の登録が完了です。
"1.2 Twitterアプリケーションを登録するために情報を入力"の手順に戻り、
再度Twitterアプリケーションを登録してください。
Twitterアプリケーション管理画面からトークンを生成しメモする
上記スクショの画面が表示されるとTwitterアプリケーションの登録が完了しています。
次に認証情報のトークンを取得します。
このトークンはPython3からTwitterAPIを叩く際に必要になりますので、メモしておいてください。
(注意: トークンの扱いには注意してください。このトークンが漏れるとAPIでできることを勝手にされることがあります。(例えば投稿やタイムラインの閲覧など))
"Key and Access Token"タブを押下してトークン情報を表示する
上記スクショの、"Consumer Key(API Key)"と"Consumer Secret(API Secret)"の箇所に表示されている
長い文字列がAPIを使用する際に使うトークンです。
この2つのトークンをメモしておいてください。Python3プログラム中から後ほど使用します。
また、この2つだけだとまだトークンが足りないので、不足しているトークンを生成します。
下部にスクロールすると、"Token Actions"と書かれた箇所の下に"Create my access token"というボタンがあります。
このボタンを押下すると、下記スクショのように"Your Access Token..."と表示されます。
"Access Token"と"Access Token Secret"の横の2つのトークン(文字列)をメモしておいてください。
これで、4つのトークン("Consumer Key", "Consumer Secret", "Access Token", "Access Token Secret")が集まりました。
TwitterAPIを使用する際にはこの4つのトークンが必要になります。
それでは、これらを使ってタイムラインを表示してみましょう。
TwitterAPIをPython3から実行する
今回はTwitterAPIを使用するのに"twitter"モジュールを使用します。
pip3(環境によってはpipの方もいます。適宜読みかえてください)を使用してインストールします。
Shell | |
---|---|
1 | pip3 install twitter |
これだけでPython3からTwitterAPIを叩けるようになります。ね?簡単でしょ?
では、コードを書いていきましょう。
timeline.py | |
---|---|
1 | CONSUMER_KEY = 'YOUR_CONSUMER_KEY' |
2 | CONSUMER_SECRET_KEY = 'YOUR_CONSUMER_SECRET_KEY' |
3 | ACCESS_TOKEN = 'YOUR_ACCESS_TOKEN' |
4 | ACCESS_TOKEN_SECRET = 'YOUR_ACCESS_TOKEN_SECRET' |
5 |
|
6 | from twitter import * |
7 |
|
8 | t = Twitter(auth=OAuth(ACCESS_TOKEN, ACCESS_TOKEN_SECRET, CONSUMER_KEY, CONSUMER_SECRET_KEY)) |
9 |
|
10 | timelines = t.statuses.home_timeline() |
11 | for timeline in timelines: |
12 | tl = '({id}) [{username}]:{text}'.format( |
13 | id=timeline['id'], username=timeline['user']['name'], text=timeline['text']) |
14 | print (tl) |
1行目から4行目のCONSUMER_KEY, CONSUMER_SECRET_KEY, ACCESS_TOKEN, ACCESS_TOKEN_SECRETには対応するトークンを代入してください。
それでは、ターミナルからこのスクリプトを実行してみましょう。
Shell | |
---|---|
1 | python3 timeline.py |
自分のタイムラインが表示されたら大成功です。
これでTwitterAPIをPython3から叩けるようになりました。
普段からターミナルで作業しているかたは自分用に便利なTwitterクライアントを作成して、
Twitterライフも今流行の自動化してしまいましょう☆
なお、この方法とcrontabを用いて定期的に自動つぶやきなども実装できます。
その方法はまたそのうち記事にしますので、ぜひぜひ楽しみにお待ちくださいませ。
それでは、アディオス!(`・ω・´)ノシ