tweepyでツイート内容を取得しようとしたらハマったので備忘録。
環境
Pyhton v3.7.6
TwitterAPI v2(Essential)
---権限:Read and write
---プロトコル:OAuth2.0
↓権限をReadOnlyからRead and writeに変えたときにここが必須項目になっていてOAuth2.0になってしまった。
ハマったこと
以下のコードでツイート取得しようとしたら401エラー(権限がない)と怒られた。
ツイート取得.py
import tweepy
CONSUMER_API_KEY = ''
CONSUMER_API_SECRET = ''
ACCESS_API_TOKEN =''
ACCESS_API_SECRET = ''
tweet_id = ''
auth = tweepy.OAuthHandler(CONSUMER_API_KEY, CONSUMER_API_SECRET)
auth.set_access_token(ACCESS_API_TOKEN, ACCESS_API_SECRET)
api = tweepy.api(auth)
Responses = api.statuses_lookup(auth)
Print(Responses)
原因と解決策
TweepyでTwitterAPIv2を使うときはapiではなくClientを使う必要がある。
また、プロトコルがOAuth2.0の時はCnsumer keyなどは使用せず、BearerTokenを使用する。下記公式ドキュメント参照
https://docs.tweepy.org/en/stable/authentication.html#twitter-api-v2
エラーにハマっているときは自分のTwitterAppがOAuth2.0に切り替わってしまったことに気づいてなかったのが原因だった。
import tweepy
BEARER_API_TOKEN = ''
tweet_id = ''
client = tweepy.Client(BEARER_API_TOKEN)
Responses = client.get_tweet(tweet_id)
print(Responses)
公式ドキュメントと設定内容はしっかり読もう!という教訓でした。