DEV Community

kaede
kaede

Posted on

Twitter API Part 3-- ツイート ID から会話ID, 画像URL, Like, RTを取得する

https://developer.twitter.com/en/docs/tutorials/postman-getting-started

docs を見てツイートの詳細データを取得してみる

会話ID

https://api.twitter.com/2/tweets/1528004049932816384?tweet.fields=conversation_id 
Enter fullscreen mode Exit fullscreen mode

tweet.fields で conversation_id を value に指定すると

{ "data": { "conversation_id": "1528004049932816384", "id": "1528004049932816384", "text": "すくすく育っとるな〜 https://t.co/OB0LAKtKwA" } } 
Enter fullscreen mode Exit fullscreen mode

会話 ID が取得できた。これを使うと会話のツリーを表示できるのだろうか?


entities/urls

同じくフィールドに entities を指定して
同じく 4 つの犬の画像のツイートを取得してみる

{ "data": { "id": "1528004049932816384", "text": "すくすく育っとるな〜 https://t.co/OB0LAKtKwA", "entities": { "urls": [ { "start": 11, "end": 34, "url": "https://t.co/OB0LAKtKwA", "expanded_url": "https://twitter.com/xxhama2/status/1528004049932816384/photo/1", "display_url": "pic.twitter.com/OB0LAKtKwA", "media_key": "3_1528004043674898432" }, { "start": 11, "end": 34, "url": "https://t.co/OB0LAKtKwA", "expanded_url": "https://twitter.com/xxhama2/status/1528004049932816384/photo/1", "display_url": "pic.twitter.com/OB0LAKtKwA", "media_key": "3_1528004043649732608" }, { "start": 11, "end": 34, "url": "https://t.co/OB0LAKtKwA", "expanded_url": "https://twitter.com/xxhama2/status/1528004049932816384/photo/1", "display_url": "pic.twitter.com/OB0LAKtKwA", "media_key": "3_1528004043637149696" }, { "start": 11, "end": 34, "url": "https://t.co/OB0LAKtKwA", "expanded_url": "https://twitter.com/xxhama2/status/1528004049932816384/photo/1", "display_url": "pic.twitter.com/OB0LAKtKwA", "media_key": "3_1528004044899635200" } ] } } } 
Enter fullscreen mode Exit fullscreen mode

すると urls という配列になっていて

  • start
  • end
  • url
  • expanded_url
  • display_url
  • media_key

それぞれ、これらが入っている。

url が

https://t.co/1234 
Enter fullscreen mode Exit fullscreen mode

の形の短縮 URL

expanded_url が

"https://twitter.com/xxhama2/status/1234/photo/1" 
Enter fullscreen mode Exit fullscreen mode

の形の表の通常の URL

display_url が

pic.twitter.com/1234 
Enter fullscreen mode Exit fullscreen mode

の形の画像 URL (アクセスするとツイートに誘導される)

になっている。

この中では display_url から画像が表示できると予想する。


in_reply_to_user_id

他者からのリプライでは ID が取れるが、自分へのリプライは表示されなかった。


public_metrics

公開測定基準?

  • RT
  • リプライ
  • いいね
  • 引用 RT

これらの数を取得できる。

https://api.twitter.com/2/tweets/ 1528085462044545025? tweet.fields=public_metrics 
Enter fullscreen mode Exit fullscreen mode

これを実行すると

{ "data": { "id": "1528085462044545025", "public_metrics": { "retweet_count": 3, "reply_count": 0, "like_count": 21, "quote_count": 0 }, "text": "一緒に食べてるなごむw https://t.co/6tjUzFtiqx" } } 
Enter fullscreen mode Exit fullscreen mode

このように RT と いいね などの数が取れた。
これはとても便利そう。

organic_metrics

いいね、RT、リプライ数、これの他にインプレッション数が見れる。
しかし普通にリクエストしても

"Sorry, you are not authorized to access 'organic_metrics.impression_count' on the Tweet with id : [1234].",

権限がないと出てしまった。

https://developer.twitter.com/en/docs/tutorials/postman-getting-started

Requires user context authentication.

とドキュメントに書いてあるので
api_secret などをリクエストに含めないといけないのかもしれない。


まとめ

ツイート ID から tweet.fileds の value を変えてリクエストすることで

  • conversation_id で そのツイートの会話ツリーとして ID
  • entities.urls.display_url でツイートの画像URL
  • public_metrics で いいね や RT 数

これらの詳細情報が獲得できたが

インプレッション数はさらなる認証がないと取得できなかった。


次回

これまではツイートID から詳細を取得してきた
次は ユーザーID からそのユーザーのツイートリストを取得したい。

Top comments (0)