【Twitter API v2の使い方】特定キーワードのツイートを取得する

API

どうもイトサル(@itosaru)です。

・Twitter APIで特定のキーワードを含んだツイートを取得したい
・どうやってTwitter APIを呼ぶプログラムを書けばいいか知りたい

この記事ではTwitter API v2を使って指定したキーワードを含んだツイートを取得するプログラムの作成方法についてお伝えします。

Twitterの開発者登録などが終わっていない場合はこちらの記事をご覧ください。

【2022年最新】twitterデベロッパーアカウント登録の手順を図解!
Twitter APIを使うにあたってまず最初にTwitterのデベロッパーアカウント(開発者)登録をする必要があります。開発者登録は英語のTwitter Developer Portalサイトで行いますが、ポイントとなる箇所は日本語訳を入れて図解します!

なおTwitter APIを呼び出すプログラム言語はPython使用し、プログラムにはTweepyライブラリを使用します。

PythonとTweepyをまだインストールしていない場合はこちらの記事をご覧ください。

Twitter API操作ライブラリ「Tweepy」をインストールする
PythonからTwitter APIを使うために、「Tweepy」というライブラリをインストールする必要があります。この記事ではPythonのインストールからTweepyライブラリのインストール方法までの手順を画像を使って分かりやすく説明します。

Tweetを取得するプログラムを書く

それでは早速やっていきましょう。

Tweetの取得には

search_recent_tweets()

メソッドを使います。

下のコードをコピーして必要なキー情報をそれぞれ入力します。
書き換えたらファイルを保存しましょう。

import tweepy
#Twitter Deverloper Portalで取得したAPIキーをコーテション('')の間にそれぞれ入れる
API_KEY = 'API Key'
API_KEY_SECRET = 'API Key Secret'
#Twitter Deverloper Portalで取得したベアラートークンをコーテション('')の間に入れる
BEARER_TOKEN = 'Bearer Token'
#Twitter Deverloper Portalで生成したアクセストークンをコーテション('')の間にそれぞれ入れる
ACCESS_TOKEN = 'Access Token'
ACCSESS_TOKEN_SECRET = 'Access Token Secret'

#リファレンスの内容に沿って入力(https://docs.tweepy.org/en/stable/client.html)
client = tweepy.Client(bearer_token = BEARER_TOKEN, consumer_key = API_KEY, consumer_secret = API_KEY_SECRET, access_token = ACCESS_TOKEN, access_token_secret = ACCSESS_TOKEN_SECRET)

QUERY = input("検索するキーワードを入力: ")
#Tweetを取得する上限
MAX_RESULTS = 10
tweets = client.search_recent_tweets(query = QUERY, max_results = MAX_RESULTS)

tweets_data = tweets.data

if tweets_data != None:
    for i, tweet in enumerate(tweets_data):
        print("No:" + str(i+1))
        print("tweet.text: " + tweet.text)
        print("\n")
else:
    print("該当がありませんでした")

動作確認をする①

プログラムを実行すると「検索するキーワードを入力:」のメッセージが表示されます。

好きなキーワードを入力して[Enter]キーを入力しましょう。

すると

キーワードを含んだツイートが取得できましたね!

『search_recent_tweets』は初期値だと”Tweet ID”と”Tweet Text”を返します。

リクエストパラメータを追加する

ツイートの投稿時間やいいねの数などを取得したい場合はリクエストパラメータに

tweet_fields

を追加しましょう。

tweet_fieldsにリストで欲しい情報を文字列で記述することでリターンデータにその情報を含めることができます。

上のプログラムを下のものに変更して保存します。

import tweepy
#Twitter Deverloper Portalで取得したAPIキーをコーテション('')の間にそれぞれ入れる
API_KEY = 'API Key'
API_KEY_SECRET = 'API Key Secret'
#Twitter Deverloper Portalで取得したベアラートークンをコーテション('')の間に入れる
BEARER_TOKEN = 'Bearer Token'
#Twitter Deverloper Portalで生成したアクセストークンをコーテション('')の間にそれぞれ入れる
ACCESS_TOKEN = 'Access Token'
ACCSESS_TOKEN_SECRET = 'Access Token Secret'

#リファレンスの内容に沿って入力(https://docs.tweepy.org/en/stable/client.html)
client = tweepy.Client(bearer_token = BEARER_TOKEN, consumer_key = API_KEY, consumer_secret = API_KEY_SECRET, access_token = ACCESS_TOKEN, access_token_secret = ACCSESS_TOKEN_SECRET)

QUERY = input("検索するキーワードを入力: ")
#Tweetを取得する上限
MAX_RESULTS = 10
tweets = client.search_recent_tweets(query = QUERY, tweet_fields = ["public_metrics","created_at"], max_results = MAX_RESULTS)

tweets_data = tweets.data

if tweets_data != None:
    for i, tweet in enumerate(tweets_data):
        print("No:" + str(i+1))
        print("tweet.text: " + tweet.text)
        print("tweet.created_at: " + str(tweet.created_at))
        print("like_count: " + str(tweets_data[i].public_metrics['like_count']))
        print("\n")
else:
    print("該当がありませんでした")

動作確認をする②

改めてプログラムを起動してキーワードを入力してみましょう。

Tweetの投稿時間といいねの数が表示されました!

実際のTweet画面のいいねの数を確認してみると数があっていることがわかります。

しかし時間は協定世界時(UTC)で取得されていたため日本時間とずれがありました。時間を処理で使う場合は日本時間への変換が必要ですね。

まとめ

今回はキーワードに合致したツイートを取得するプログラムを作成しました。

あたらめて今回の内容を振り返ります。

  • キーワードに合致するツイートを取得するメソッド:『search_recent_tweets()』
    →初期値だと「Tweet id」と「Tweet text」がかえってくる
  • ツイートの投稿時間など付帯情報が欲しい場合:「tweet_fields」をリクエストに追加する

追加できるパラメータについてはTwitter Developer公式サイトのリファレンスに記載がありますので、どんな情報が取れるかはこちらを確認しましょう。

》Developer Platform Documentation(英語)

Pythonの勉強におすすめな本

Pythonについて勉強したい!という方は

Python 1年生 体験してわかる!会話でまなべる!プログラミングのしくみ

の本がおすすめです。

前ページがカラー印刷で、かわいらしいどうぶつ2人の会話形式で読みやすいです。

内容はPythonの特徴からはじまり、プログラミングの方法、そして簡単な人工知能を作るまでを解説してくれます。

そして現在Amazonで『Kindle本 ゴールデンウィークキャンペーン』が開催中!

この本は定価2178円ですが、50%オフの1089円で購入することができます!

この本の続編である

  • Python2年生 データ分析のしくみ 体験してわかる!会話でまなべる!
  • Python2年生 スクレイピングのしくみ 体験してわかる!会話でまなべる!

も50%オフのセール対象です。

5/12までのキャンペーンですのでこの機会をお見逃しなく!

 

コメント

タイトルとURLをコピーしました