Twitter APIを利用する準備をしよう

所要時間:10分

Twitter APIを利用して、ツイートをすべて取得しよう

さて、POSTから受け取った値を、FLASKで扱う方法を学んだので、次はPOSTから受け取ったuser_idから、ユーザーのツイートを取得して、HTMLに返す処理を行いましょう。

仕様の確認

今回は、以下のような機能を作成します。

  1. ツイッターのユーザーのデータを取得する
  2. ユーザーのツイートのデータをすべて収集し、そのツイートでリツイート数が多い順に並べる
  3. ①で収集したツイートを、日次で集計し、時系列グラフでリツイート数、いいね数を表示する

さっそく、TwitterのAPIを利用して、それぞれのデータを取得していきましょう。

Twitter APIの認証を行う

まずは、ツイッターから、以下の値を取得します。

  • Access Token
  • Access Secret
  • Consumer Secret
  • Consumer Key

取得したら、以下のようにツイッターのAPIの認証情報を保存します。

  1. .envというファイルを作成
  2. Access Token / Access Secret / Consumer Secret / Consumer Keyを設定する
  3. twitter.pyというファイルを新規作成
  4. twitter.pyから環境変数をインポートする

.envは以下の階層に作成します。

top-tweets
├── app.py
├── .env
└── templates
   └── index.html

 

さて、編集して以下のようにコードを書いていきましょう。中の値は空になっていますが、実際にはさきほど取得したAPIの認証情報を保存することになります。

.env

CONSUMER_KEY=xxxx
CONSUMER_SECRET=xxxx
ACCESS_TOKEN=xxxx
ACCESS_SECRET=xxxx

さて、記入が終わったら保存し、再度twitter.pyを編集し、以下のファイルをコピペします。

twitter.py

import tweepy #1 Twitter APIが使えるライブラリ
import os #2 OSの操作ができるライブラリ
from dotenv import load_dotenv #3 環境変数が読み込まれるライブラリ

load_dotenv() #4 dotenvの読み込み
#5 各種ツイッターのキーをセット
CONSUMER_KEY = os.getenv("CONSUMER_KEY")
CONSUMER_SECRET = os.getenv("CONSUMER_SECRET")
ACCESS_TOKEN = os.getenv("ACCESS_TOKEN")
ACCESS_SECRET = os.getenv("ACCESS_SECRET")

#6 Tweepyの初期化
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)

#7 APIインスタンスを作成
api = tweepy.API(auth)

#8 Tweepyの利用テスト
user = api.get_user("manajob_jp")
print (user)

 

 順に追って説明します。

#1では、Twitterを利用するためのライブラリであるtweepyをインポートします。まだインストールできていないので、tweepyはのちほどインストールします。

#2では、osという、環境変数を読み込むために使うライブラリをインポートします。

#3では、.envから環境変数を読み込むためのdotenvというライブラリをインポートします。こちらもまだインストールできていないので、のちほどインストールします。

#4では、.envファイルを環境変数に設定するコマンドを実行しています。

#5では、Twitterの各種設定キーを変数に入れています。

#6, #7 では、TwitterのAPIを使うためのセッティングを行っています。具体的には、Twitter APIの認証を行っていて、APIが利用できるようにしています。

#8では、実際にAPIが使えるかどうか、確認しています。

さて、実際にここまでできたら、ファイルを実行してみましょう。

その前に、もろもろのライブラリをインストールしておきましょう。

pip install dotenv
pip install tweepy

次に、以下のコマンドで実行します。

python twitter.py

実行すると、IDに該当するアカウントが出てくるはずです。

{'id': 987921290672525312, 'user_id': 'manajob_jp', 'image': 'http://pbs.twimg.com/profile_images/1069152674442932225/VXyo_onN_normal.jpg', 'description': 'マナジョブは、ビジネスサイドの人が、IT技術を学んで実践できるようになるための学習サービスです。無料のチュートリアルもあるので、ぜひ利用してみてください!'}

次のレッスンでは、さっそくツイートの一覧を取得してみましょう!