前回はTwitter APIの利用開始方法について解説しました!
以前に比べて容易に申請〜利用ができるようになったみたいです!
今回は取得したAPI等を利用してTwitterをいじってみたいと思います!笑
Twitter APIを利用する方法
アクセスキーとトークンの取得
前回、Twitter developersにサインアップした際に作ったアプリがあるのでそのアプリのAPI Keyを使っていきます!
もし忘れてしまった方は下記の方法で再度作り直してどこかに保存しておきましょう!
※アクセスキーやトークンを忘れた方
上記の手順で「Regenetate」を押すと下記の表示が出ます。
「Regenerateすると今まで使っていたコードが使えなくなるので、アップデートする必要があります」という表示なので、問題なければRegenerateします!
実行すると新しくAPI KeyとSecret Keyが表示されますので、コピーしてメモ等に写しておきましょう!
ツイートを取得してみる
ここからはAPIを使って実際にツイートを取得してみようと思います!
コード全文
import requests
import pandas as pd
import emoji
import re
# 発行したBearer token
bearer_token = 'ここは自分で取得したトークンを入力'
# Twitter APIのURL
search_url = "https://api.twitter.com/2/tweets/search/recent"
# 検索クエリ
params = {'query': 'from:Yuxas_beginner', 'tweet.fields': 'author_id', 'max_results': 100, 'user.fields' : 'id'}
def create_headers(bearer_token):
headers = {"Authorization": "Bearer {}".format(bearer_token)}
return headers
def connect_to_endpoint(url, headers, params):
has_next = True
c = 0
result = []
while has_next:
response = requests.request("GET", search_url, headers=headers, params=params)
if response.status_code != 200:
raise Exception(response.status_code, response.text)
response_body = response.json()
result += response_body['data']
rate_limit = response.headers['x-rate-limit-remaining']
print('Rate limit remaining: ' + rate_limit)
c = c + 1
has_next = ('next_token' in response_body['meta'].keys() and c < 300)
# next_tokenがある場合は検索クエリに追加
if has_next:
query_params['next_token'] = response_body['meta']['next_token']
return result
# Pandasのデータフレームを使ってデータを加工
def create_data_frame(json_data):
df = pd.DataFrame(json_data)
# ツイート中のURLを削除
df['text'] = df['text'].apply(lambda x: re.sub(r'https?://[\w/:%#$&\?\(\)~\.=\+\-]+', '', x))
# ツイート中の絵文字を削除
df['text'] = df['text'].apply(lambda x: ''.join(c for c in x if c not in emoji.UNICODE_EMOJI))
return df
headers = create_headers(bearer_token)
json_response = connect_to_endpoint(search_url, headers, query_params)
data_frame = create_data_frame(json_response)
初心者ながらにこちらのサイト(https://sebenkyo.com/2021/06/28/post-2060/)を参考に作ってみました!
「Bearer token」を入力する部分だけ自分で取得したものを使えばコピペで使えると思います!
検索条件はこちらを参考に変えてみてください!
Developer Platform:Search Tweets
実行結果
こちらが今回作ったコードを利用して取得したツイートです!
相方のユクサスのツイートを取得してみました!笑
まとめ
Twitter developer登録からツイートの取得まで比較的スムーズにできました!
サインアップのみでAPIが使えることになったので、プログラミングを使ってTwitterの操作が容易になったと思います!
次回以降もTwitter APIを使って遊んでみようと思います!
コメント