Python

TwitterAPI v2 アンケート取得

Twitter API v2

TwitetrAPI v2ではv1に比べかなり利用しやすくなった印象です。

リクエストの投げ方であったり、なんと言ってもレスポンスがスッキリしています。

v1のレスポンスは正直カオスな状況であったがv2では改善されました。

以下、v2のツイート検索のドキュメントだが、ざっとみただけでいい感じ。

twitter api v2

また、v2 からはアンケートデータに関してもAPI経由で取得できるようになりました

これはv1では明示的なドキュメントがなく、工夫しないと取れなかったり、非推奨のスクレイピングで取得するしかなかった。

ちなみにv1でのアンケートデータの取得方法は以下に記載しています。

【twitterAPI1.1】pythonでアンケートデータを取得するアンケートに関するAPIは用意されていない。 twitteAPIを使ってアンケート(投票)のツイートを取得したいと思い、ドキュメントを...

アンケートデータの取得方法

まずはapi v2の公式ドキュメント

https://developer.twitter.com/en/docs/twitter-api/data-dictionary/object-model/poll

url2 = "https://api.twitter.com/2/tweets?ids="+<screen_name>+"&expansions=attachments.poll_ids&poll.fields=duration_minutes,end_datetime,id,options,voting_status"
 headers={'Authorization':'Bearer <APIキー>'}
 res2 = requests.get(url2,headers=headers)
 res2=json.loads(res2.text)
    
 theme=res2['data'][0]['text'] #アンケートタイトル
 status=res2['includes']['polls'][0]['voting_status'] #ステータス open/close
 question1=res2['includes']['polls'][0]['options'][0]['label'] #選択肢1
 l_vote=res2['includes']['polls'][0]['options'][0]['votes'] #投票数1
 question2=res2['includes']['polls'][0]['options']['label'] #選択肢2
 r_vote=res2['includes']['polls'][0]['options']['votes'] #投票数2
 allvote = int(l_vote) + int(r_vote) #合計投票数

 

こんな感じでAPI経由でアンケート内容や投票数まで確認することができます。

普通はアンケートに関しては、自分が投票する or 投票期限を迎えるまでは投票内容を確認することができませんが、

実はAPI経由だとリアルタイムで投票状況を確認することができます

ただ、まだ無数のツイートがある中からそもそもどれがアンケートツイートなのか判定する必要がありますが、その検索APIの有無に関してはまだ確認できてません。

ドキュメントを読み込めばおそらく用意されていると思いますが、現状は以下で記載している方法でアンケートツイートを取得しています。

【twitterAPI1.1】pythonでアンケートデータを取得するアンケートに関するAPIは用意されていない。 twitteAPIを使ってアンケート(投票)のツイートを取得したいと思い、ドキュメントを...

最後に🙇‍♂️

今回の機能を実際に実装して作ったサービスが以下になります。

一度、ご利用いただければと思います。

どっちらいく

あなたはどっちを選ぶ?どっちらいくとは? どっちらいく どっちらいくとはユーザが投稿した2択のテーマ(お題)に関してどっちが 好きか、良いか、イケてる...

今回の機能について等々、それ以外のことでもいつでもご質問お待ちしております!