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

Quote Tweets ルックアップ endpoint を使い始める

このクイックスタート ガイドでは、Postman を使用し、指定した一連の fields を含めて Quote Tweets ルックアップ endpoint に初めてリクエストを送る方法を説明します。 さまざまな言語のサンプルコードをご覧になりたい場合は、X API v2 sample code の GitHub リポジトリをご参照ください。 

前提条件

このガイドを完了するには、リクエストを認証するためのキーおよびトークンのセットが必要です。これらのキーおよびトークンは、以下の手順に従って生成できます: Quote Tweets 検索リクエストを構築する手順 ステップ1:ツールまたはライブラリから始める この endpoint にリクエストを行うために使用できるツール、コード例、ライブラリはいくつかありますが、ここではプロセスを簡素化するために Postman ツールを使用します。 X API v2 Postman コレクションを環境に読み込むには、以下のボタンをクリックしてください: Postman に X API v2 コレクションが読み込まれたら、timeline フォルダに移動し、「Quote Tweets by ID」リクエストを見つけてください。 ステップ2:リクエストを認証する X API に適切にリクエストを行うには、権限があることを確認する必要があります。この endpoint でそれを行うには、OAuth 2.0 App-OnlyOAuth 2.0 Authorization Code(PKCE 付き)、またはOAuth 1.0a ユーザーコンテキスト認証方法のいずれかでリクエストを認証する必要があります。 簡単にするため、このリクエストでは OAuth 2.0 App-Only を使用しますが、プライベートなmetricsや Posts をリクエストしたい場合は、他の認証方法のいずれかを使用する必要があります。 キーおよびトークン、特にApp Access Token(App-only Bearer Token とも呼ばれる)を Postman に追加する必要があります。これは、Postman の右上角にある「X API v2」という名前の環境を選択し、「initial value」および「current value」フィールドにキーおよびトークンを追加することで行えます(環境ドロップダウンの横にある目のアイコンをクリック)。 これを正しく行った場合、この変数は自動的にリクエストの認証タブに取り込まれます。 ステップ3:Quote Tweets を取得したい Post を特定し指定する Post ID を渡すことで、Quote Tweets を取得したい Post をリクエスト内で指定する必要があります。 この例では、使用する Post ID は 1409931481552543749 です。 Postman で「Params」タブに移動し、この Post ID を id パラメータの「Value」列に入力してください。
KeyValue
id1409931481552543749
ステップ4:取得したい fields を特定し指定する ステップ3の後に「Send」ボタンをクリックすると、レスポンスでデフォルトのPost オブジェクト fields を受け取ります:id、text、および edit_history_tweet_ids。 追加の fields を受け取りたい場合は、fieldsおよび/またはexpansionsパラメータを使用してリクエストでそれらの fields を指定する必要があります。 この演習では、異なるオブジェクトから3つの異なる fields セットをリクエストします:
  1. プライマリユーザーオブジェクトの追加の tweet.作成日時 フィールド。
  2. 返された Posts の関連する作成者のユーザーオブジェクトのデフォルト fields:id、name、および username
  3. 関連するユーザーオブジェクトの追加の user.作成日時 フィールド。
Postman で「Params」タブに移動し、「Query Params」テーブルに以下のキー:値ペアを追加してください:
キー返される fields
tweet.fieldscreated_attweets.created_at
expansionsauthor_idincludes.users.id, includes.users.name, includes.users.username
user.fieldscreated_atincludes.users.created_at
次に、「Send」ボタンの横に以下のURLが表示されます。 https://api.x.com/2/tweets/:id/quote_tweets?expansions=author_id&tweet.fields=created_at&user.fields=created_at ご注意 Postman では、URL フィールドのパスパラメータ :id は、id パラメータフィールドに入力した値に自動的には更新されません。そのため、上記のURLには 1409931481552543749 ではなく :id が含まれています。 ステップ 5: リクエストを送信し、レスポンスを確認する すべての設定が完了したら、「Send」ボタンをクリックすると、次のレスポンスが返されます。
{
 "data": [
   {
     "created_at": "2022-02-22T04:31:34.000Z",
     "text": "RT @chris_bail: Xは研究者がデータ収集方法を学ぶための完全なコース(動画、コード、その他の資料を含む)を作成しました…",
     "author_id": "29757971",
     "id": "1495979553889697792"
   },
   {
     "created_at": "2022-01-26T17:07:43.000Z",
     "text": "RT @suhemparack: 学術研究向けの#X API v2入門コースを共有できることを非常に嬉しく思います\n\n学生を知っている方がいらっしゃいましたら…",
     "author_id": "241588187",
     "id": "1486385372401737728"
   },
   {
     "created_at": "2022-01-11T17:28:04.000Z",
     "text": "RT @suhemparack: 学術研究向けの#X API v2入門コースを共有できることを非常に嬉しく思います\n\n学生を知っている方がいらっしゃいましたら…",
     "author_id": "24961055",
     "id": "1480954678447857669"
   },
   {
     "created_at": "2022-01-10T20:34:46.000Z",
     "text": "RT @suhemparack: 学術研究向けの#X API v2入門コースを共有できることを非常に嬉しく思います\n\n学生を知っている方がいらっしゃいましたら…",
     "author_id": "1441574419789324291",
     "id": "1480639272721940486"
   },
   {
     "created_at": "2021-12-16T22:55:24.000Z",
     "text": "RT @chris_bail: Xは研究者がデータ収集方法を学ぶための完全なコース(動画、コード、その他の資料を含む)を作成しました…",
     "author_id": "1623598771",
     "id": "1471614967207976961"
   },
   {
     "created_at": "2021-12-13T15:59:55.000Z",
     "text": "RT @suhemparack: 学術研究向けの#X API v2入門コースを共有できることを非常に嬉しく思います\n\n学生を知っている方がいらっしゃいましたら…",
     "author_id": "1506401233",
     "id": "1470423243513372679"
   },
   {
     "created_at": "2021-12-10T02:02:45.000Z",
     "text": "RT @suhemparack: 学術研究向けの#X API v2入門コースを共有できることを非常に嬉しく思います\n\n学生を知っている方がいらっしゃいましたら…",
     "author_id": "40103034",
     "id": "1469125403373568001"
   },
   {
     "created_at": "2021-12-08T17:27:54.000Z",
     "text": "RT @suhemparack: 学術研究向けの#X API v2入門コースを共有できることを非常に嬉しく思います\n\n学生を知っている方がいらっしゃいましたら…",
     "author_id": "1436400156006567936",
     "id": "1468633446935318529"
   },
   {
     "created_at": "2021-09-15T21:40:24.000Z",
     "text": "RT @suhemparack: 学術研究向けの#X API v2入門コースを共有できることを非常に嬉しく思います\n\n学生を知っている方がいらっしゃいましたら…",
     "author_id": "81650379",
     "id": "1438256410417143809"
   },
   {
     "created_at": "2021-08-26T16:45:16.000Z",
     "text": "RT @suhemparack: 学術研究向けの#X API v2入門コースを共有できることを非常に嬉しく思います\n\n学生を知っている方がいらっしゃいましたら…",
     "author_id": "40462535",
     "id": "1430934381829492746"
   }
 ],
 "includes": {
   "users": [
     {
       "username": "j_a_tucker",
       "id": "29757971",
       "name": "Joshua Tucker",
       "created_at": "2009-04-08T16:45:38.000Z"
     },
     {
       "username": "whimchic",
       "id": "241588187",
       "name": "whimchic",
       "created_at": "2011-01-22T16:51:43.000Z"
     },
     {
       "username": "mattbiehl",
       "id": "24961055",
       "name": "Matthias Biehl",
       "created_at": "2009-03-17T21:41:27.000Z"
     },
     {
       "username": "weixinac",
       "id": "1441574419789324291",
       "name": "J",
       "created_at": "2021-09-25T01:25:19.000Z"
     },
     {
       "username": "RSangeleer",
       "id": "1623598771",
       "name": "Richard Sangeleer",
       "created_at": "2013-07-26T18:25:45.000Z"
     },
     {
       "username": "Gulnerman",
       "id": "1506401233",
       "name": "Giz Gulnerman",
       "created_at": "2013-06-11T20:13:40.000Z"
     },
     {
       "username": "efishman123",
       "id": "40103034",
       "name": "Elishema Fishman",
       "created_at": "2009-05-14T22:25:58.000Z"
     },
     {
       "username": "dtcxwz",
       "id": "1436400156006567936",
       "name": "Hüseyin Ateş",
       "created_at": "2021-09-10T18:44:30.000Z"
     },
     {
       "username": "brendaberkelaar",
       "id": "81650379",
       "name": "Dr. Brenda Berkelaar",
       "created_at": "2009-10-11T18:09:16.000Z"
     },
     {
       "username": "misoca",
       "id": "40462535",
       "name": "Michael Soto",
       "created_at": "2009-05-16T13:26:05.000Z"
     }
   ]
 },
 "meta": {
   "result_count": 10,
   "next_token": "avdjwk0udyx6"
 }
}

ステップ6:結果をページングする

前のレスポンスの末尾には、以下の fields を含む meta data オブジェクトがあります。
  • results_count
  • next_token
ステップ4では max_results パラメータを指定しなかったため、デフォルトで取得できる Posts は 10 件のみです。追加のページの data にアクセスするには、直近の結果から next_token フィールドの値を取得し、その文字列を Postman の params ページで pagination_token パラメータの値として追加し、その他はそのままにします。 
KeyValue
pagination_tokenavdjwk0udyx6
設定が完了したら、Send をもう一度クリックすると、次のページの結果を受け取れるはずです。  この概念をさらに説明するために、pagination に関するガイドを用意しています。
I