メインコンテンツへスキップ

はじめに

recent search endpoint では直近7日間に公開された Post のみを取得できますが、user Post timeline エンドポイントおよび user mention timeline エンドポイントを使用すると、認可済みユーザー(user ID を使用)について、直近7日より前の Post やメンションも取得できます。開発者はこれらのエンドポイントを使って、ユーザーのタイムラインやメンションに含まれるトピック、エンティティ、センチメントを分析できます。本チュートリアルでは、user Tweet timeline エンドポイントと user mention timeline エンドポイントを使って、特定ユーザーの Post とメンションを探索する方法を紹介します。  

前提条件

  • ユーザーの Tweet タイムラインおよびユーザーのメンションタイムラインのエンドポイントを使用するには、有効な開発者アカウントが必要です。
  • Project を作成している必要があります。
  • 開発者アカウントに登録し、新しい開発者ポータルエクスペリエンスを有効にしている必要があります。
  • 開発者ポータルで作成した Project に紐づく開発者アプリの有効なキーとトークンでアクセスできます。
  • X 開発者ポータル内のアプリで発行された Bearer Token。
  • 承認済みの開発者アカウントがない場合は、申請できます。

承認済みの開発者アカウント

まだお持ちでない場合は、こちらから申請してください

プロジェクトを作成してアプリを接続する

開発者ポータルで「新しいプロジェクトを作成」をクリックします。
名前を設定し、該当するユースケースを選択して、プロジェクトの説明を入力します。次に、新しいアプリを作成するか、既存のアプリ(アプリは、X API に HTTP リクエストを送るために必要な API キーを保持するコンテナです)を接続します。
「代わりに新しいアプリを作成」をクリックし、アプリ名を入力して新しいアプリを作成します。
「完了」をクリックすると、X API v2 の新しいエンドポイントに接続するために使用できる API キーと Bearer トークンが表示されます。
API key、API secret key、Bearer token の横にある(+)をクリックし、これらの値をローカル環境の安全な場所にコピーしてください。次の手順で API 呼び出しを行う際に必要になります。 注記: 上のスクリーンショット内のキーは非表示になっていますが、ご自身の開発者ポータルでは API key、API secret key、Bearer token の実際の値を確認できます。  

ユーザーの Tweet タイムラインおよびユーザー言及タイムラインのエンドポイントで使用するユーザーIDの取得方法

ユーザーの Tweet タイムラインおよびユーザー言及タイムラインの各エンドポイントでは、ユーザーIDを使ってPostを取得できます。ユーザー名からユーザーIDを取得するには、新しい ユーザー検索エンドポイント v2 を使用してください。任意のユーザー名で USER_NAME を、上記で取得したご自身のベアラートークンで XXXX を置き換えてください。
  curl --request GET 'https://api.x.com/2/users/by/username/USER_NAME --header 'Authorization: Bearer XXXXXX'
以下のとおり、レスポンスにユーザーIDが含まれます:
{
   "data": {
       "id": "2244994945",
       "name": "Developers",
       "username": "XDevelopers"
   }
}

ユーザーの Tweet タイムラインおよびユーザーのメンションタイムラインエンドポイントへの接続

ユーザーの Tweet タイムラインを取得するには、ターミナルで次の curl コマンドを実行してください(USER_ID は取得対象のユーザー ID に、XXXX は上で取得した自身のベアラートークンに必ず置き換えてください)
curl --request GET 'https://api.x.com/2/users/USER_ID/tweets' --header 'Authorization: Bearer XXXXXX'
これらのリクエストでは、JSON レスポンスにデフォルトで Post の id とテキストが含まれます(例は以下)。
{
   "id": "1334200897081987072",
   "text": "👀 X API v2 が初めての方は、最初のリクエストを作成するためのステップバイステップガイドをご確認ください https://t.co/4rZqThpSbp"
}
レスポンスに追加の fields(ユーザー情報や、context annotations などの追加の Tweet フィールドなど)を含めて返したい場合は、要求内でそれらの fields を明示的に指定する必要があります。設定方法はfields と expansions の使い方に関するガイドをご覧ください。 お好みのプログラミング言語を使ってこれらの Post を取得することも可能です。ユーザーの Tweet タイムラインおよびユーザーのメンションタイムライン用に、Python、Node(JavaScript)、Java、Ruby のサンプルコードをGitHub リポジトリで公開しています。

ユーザーのPostを探る

ユーザーのTweetタイムラインとユーザーのメンションタイムラインの各エンドポイントでPostを取得する方法が分かったら、そのユーザーのPostを分析し始められます。たとえば、ユーザーのメンションに含まれる一般的な固有表現を抽出したい場合は、次のようにします。 APIリクエストで、Tweetのレスポンスにcontext_annotationsオブジェクトが含まれるように指定します。
curl --request GET 'https://api.x.com/2/users/USER_ID/mentions?tweet.fields=context_annotations' --header 'Authorization: Bearer XXXXXX'
レスポンスでは、メンションに名前付きエンティティが含まれているかどうかを確認できます。例を示します。
{
   "domain": {
       "id": "47",
       "name": "ブランド",
       "description": "ブランドと企業"
   },
   "entity": {
       "id": "783214",
       "name": "X"
   }
}
あなたのメンションにどの人気エンティティが現れているかを確認したい場合は、メンション内の各 Tweet を解析し、人気エンティティの出現回数を集計できます。 タイムライン内でメディアを含むすべての Post のプレビュー画像 URL を調べたい場合は、次のようにします。 API リクエストで、tweet.media の fields に preview_image_url を、expansions に attachments.media_keys を指定します
curl --request GET 'https://api.x.com/2/users/2244994945/mentions?max_results=100&media.fields=preview_image_url&expansions=attachments.media_keys' --header 'Authorization: Bearer XXXXXX'
レスポンスでは、次のとおり includes オブジェクト内に preview_image_url が含まれています。
{
   "includes": {
       "media": [
           {
               "media_key": "16_1334657439640121344",
               "preview_image_url": "https://pbs.twimg.com/tweet_video_thumb/EoWn3rqU8AAtFWL.jpg",
               "type": "animated_gif"
           }
       ]
   }
}
ユーザーのPostの見つけ方・たどり方を把握したら、ほかのAPIやサービスを使ってPostをさらに活用できます。以下は、ユーザーのTweetタイムラインおよびユーザーのメンションタイムラインのエンドポイントを利用する際に役立つリソースです。

リソース