PythonでTwitter-APIを使ってみよう!

PythonでTwitter-APIを使ってみよう!

Twitter APIは、日々Twitter上に流れるビッグデータにアクセスできる開発者向けのTwitter公式ツールです。

機械学習と組み合わせれば、効率的な市場動向の調査などに活用することができます。

今回はそんなTwitter APIの登録方法と、Pythonでデータを取得する方法について説明してみたいと思います。

えびかずき
えびかずき
Twitter APIでビッグデータの取得にチャレンジしてみよう!

APIとは?

プログラミング学習をしていると良く耳にする”API”ですが、一体何のことでしょう。なんとなく雰囲気はわかるけど実はよく知らないという方も多いのではないでしょうか?

Application

Programming

Interface

APIとは、Application Programming Interfaceの略で、つまりあるアプリケーション(今回はTwitter)の機能を別の外部アプリケーションからプログラミングで簡単に受け渡して利用できるインターフェースということです。ちょっと抽象的で日本語にするとますます分かりづらいですが、要するに今回の場合ならば、Twitterを開かずに外部からアクセスして情報が取得できるよ!ということです。

その他にもツイートやリツイート、いいねなどを外部から操作して実行することもでき、自動botの作成にも使えます。

Twitter以外の例でいうならば、例えばwebAPIを使ってブログ記事にgoogle Map内の最新地図を埋め込んでおくなどといったこともできるという訳です。

Twitter APIの登録

Twitter APIを使用する前に、まずTwitterアカウントからAPIの登録申請をおこなう必要があります。
※先に言っておくと後半に英語で申請理由を入力するところがあり、結構面倒です。(泣)

①まずTwitterの開発者向けページへ行き、右上の「Apply」ボタンをクリックします。

②下の様な画面になりますので、「Apply for a developer account 」ボタンをクリックします。

③自分のTwitterアカウントにログインします。

※Twitterアカウントをお持ちでない方はTwitter公式サイトから事前に作成しておいてください。

④使用用途を選択して、Nextをクリックします。

私の場合、プログラミング学習を目的としていましたので、「Academic」の「Student」を選択しました。

⑤Twitterアカウントに電話番号が登録されていない場合、ここで登録が必要となります。
「Add a valid phone number」から登録してください。

⑥国名選択、名前入力、最新情報のメール受け取り有無を入力して、Nextをクリックします。

⑦「APIで何をするか?」と使用機能の選択と用途の入力をします。

「APIで何をするか?」は200字以上、各機能の用途は100字以上入力する必要があります。私の場合は、データ取得が目的なので「analyze Twitter data」のみを選択し、その用途を記入しました。

※私はあまり英語が得意でないのでgoogle翻訳を活用して入力しました。

⑧修正事項がないか確認して、「looks good!」をクリックします。

⑨赤枠にチェックを入れ、「Submit Application」をクリックします。

すると申請が完了した旨を知らせる下の画面が現れます。

⑨申請が受理されると下の様なメールが届きます。
「Confirm your email」をクリックすると、Wellcome!と表示された登録完了を知らせるページへ移動し、これにて完了となります。

私の場合、申請から十数分程度でメールが届きましたが、
どうやらこのメールが来るまで数日かかったり、追加で申請理由を求められる場合もある様です。その場合は都度対応が必要です。

おそらく私の場合は、使用する機能をデータ取得の一つに絞ったため申請が通りやすかったのかなと思います。

Twitter APIのアクセスコードの取得

Twitter APIの使用登録ができたら次は、アクセスコードの取得です。このコードを使ってAPIにアクセスして外部からツイッターのビッグデータを取得するという流れになります。

①「Create an app」をクリックします。

※このTwitterAPIは、なんらかのアプリケーションを作るという前提で提供されていますので、学習用のテストとは言え、認証コードを得るためには建前上「app」を作るという申請をおこなう必要があります。

②appのページに移りますので、再度「Create app」をクリックします。

③Appの詳細情報を入力してページ下部の「Create」をクリックします。

必須項目は赤枠の四箇所になります。
今回は実際にアプリケーションを作るわけではなくて、ただ認証コードが欲しいだけなので、App nameは「test」とか適当に入力しました。

特に使用するわけではないですがWebsite URLも必須の様です。今回はこのブログのURLを入力しておきました。

④appを作成できたら、「keys and tokens」のページへ行きアクセスコードを確認します。

ここに表示されている認証コードを使うことでAPIにアクセスできるようになります。

えびかずき
えびかずき
長かったけどやっと認証コードを貰えた!

ここに表示されている、

  • API key
  • API secret key
  • Access token
  • Access token secret

この4つのコードがAPIにアクセスする際に必要となりますので大切にメモしておきましょう。

※Access tokenが表示されていない場合は、「Create」をクリックしましょう。

PythonでTwitterのデータを取得する

開発環境

  • macOS Catalina ver10.15
  • python3.7.3
  • jupyter notebook

ライブラリのインストール

まず、twitter APIを扱うライブラリをpipなどでインストールします。

今回は「python-twitter」を使用することとします。

$ pip install python-twitter

Pythonによるタイムライン取得

いよいよ、twitterのデータを取得できる準備が整いました。

今回は自分のツイートを取得するというコードを書いてみました。

# ライブラリをインポートする。
import twitter
# 認証コードを入力。
t = twitter.Api(consumer_key='●●●●●●●●●●',
                  consumer_secret='●●●●●●●●●●',
                  access_token_key='●●●●●●●●●●',
                  access_token_secret='●●●●●●●●●●'
                  )
# タイムラインを取得。
timeline = t.GetUserTimeline(t.VerifyCredentials().id, count=200)

# タイムラインを出力。
for s in timeline:
    print(s.text)
# タイムラインの内容が表示されます。

これを実行してみると。。。

赤枠の様に、自分のツイートを取得することができました!

まとめ

今回はTwitter APIを使って、pythonでtwitterのデータを取得することにチャレンジしてみました。

Twitter APIの登録がかなり面倒ではありましたが、APIのアクセスコードさえ取得してしまえば、簡単にTwitterのデータを取得できることが分かりました。

できれば今後は、Twitterのビッグデータを取得して解析するというようなことにもチャレンジできればと思います!

おまけ

よくブログにTwitterのタイムラインを埋め込んで表示しているブロガーさんをお見かけしますが、これは今回の様な面倒くさいAPI登録なしで実施できます。

ご親切にTwitterが誰でも使えるAPIサービスを展開してくれていて、下記リンクから簡単に実行できます。

もしご興味あれば使ってみてください。

https://help.twitter.com/ja/using-twitter/embed-twitter-feed

こんな感じ↓↓

Pythonカテゴリの最新記事