- 書いたきっかけ
-
Tweepy(TwitterAPI v2)とは
- 前提事項
- 使い方
- コード例
- そのほか
■書いたきっかけ
とあるポイ活系サイト巡回中に懸賞botの作成記事があり、自動化で懸賞bot作れるのであればぜひやりたいというのがきっかけ(2022/11~)。
ただ現時点での開始だとTwitterのAPIは2.0に指定されており、2.0の記事にあまり出会えなくてドツボにはまったことによる。
※2月上旬にAPI有料化のお知らせが出たときは焦った
■Tweepy(TwitterAPI v2)とは
Twitterが提供しているAPIの一種。Pythonライブラリ。
Tweepyで検索するとv1.0のほうが上位に来る。
現時点でtwitterの開発ポータル開設した人は、v2.0の使用に制限される。
※XXX.OAuthHandlerの記述があればv1.0
■前提事項
Twitterの開発ポータルを開いたのは2022/11あたり。
開発ポータルの権限はEssential。
python初心者。
つぶやき方法は検索したら出たので、本記事はbot作成時に使用した項目のみ記載。
■使い方
以下リファレンス。
TwitterAPIv2.0では上記リファレンスに載ってないことは、TwitterAPIの一覧に載っている関数の使用ができない。
また、負担軽減の観点からか、v2.0では取得件数もだいぶ制限される。
利用したい関数を上記リファレンスから探し、関数を検索エンジンで検索して、開発ポータルのリファレンスに飛び、両方とも参照するのがおすすめ。
〇検索
検索メソッドは2種あるが、Client.search_all_tweets()関数は、Essentialでは使用できない。使用できるのは1種である。
Client.search_recent_tweets(query, *, user_auth=False, end_time, expansions, max_results, media_fields, next_token, place_fields, poll_fields, since_id, start_time, tweet_fields, until_id, user_fields)
引用:https://tweepy.mkuriki.com/client.html#tweepy.Client.search_recent_tweets
関数名の通り最近のツイートから検索する関数。
第一引数queryが必須で、他はoptional。json形式で返却されてくる。
queryには検索キーワードを入力する。
v1.0だと自分がツイート済みかどうかの引数があるそうだが、上にはなさそうである。
optional項目に指定してやることで、取得結果内容が増える。
例:ツイートしたアカウントのidを取得したい → 引数にexpansions ='author_id'を指定する
※pythonだと当然なのか、一部引数のリファレンスはままだと使用ができない。
引数として使用できないという場合はアンダースコアに変えてみるとよい。
・第一引数:queryについて
検索の第一引数内容によって、検索したい内容を指定することが可能。
文字制限があるのがネックだが、結構自由に条件指定が可能。
〇リツイート
引用:https://tweepy.mkuriki.com/client.html#tweepy.Client.retweet
ツイートごとに割り振られているID(ツイートID)を引数にリツイート実行を行う関数。search_recent_tweetsと組み合わせれば、取得してきた特定条件を含むツイートをリツイートする、といったことが可能。
■コード例
■そのほか
・API実行エラーが出る
→tweepyのバージョン古くないか
→pythonをインタプリタモードで実行してないか(>>が先頭につくのはインタプリタモード。cmdで開けば普通にpyファイルを実行するだけ)
→デベロッパーアカウントの権限は大丈夫か(読み取りのみになってないか)
→権限外の関数を使用しようとしてないか