このクイックスタートガイドでは、Postman を使って、指定した一連の fields を含むタイムライン系エンドポイントへの最初のリクエストの実行方法を説明します。
さまざまな言語のサンプルコードを見たい場合は、X API v2 sample code の GitHub リポジトリをご覧ください。
前提条件このガイドを完了するには、リクエストを認証するための一連の keys and tokens が必要です。以下の手順で keys と tokens を生成できます。
逆時系列のホームタイムラインリクエストを構築する手順
この例では、ユーザー Post タイムライン(ID 指定)のエンドポイントにリクエストしますが、このクイックスタートで学んだ内容は、ユーザーのメンションタイムラインへのリクエストにも適用できます。
ステップ1: ツールまたはライブラリを用意する
このエンドポイントにリクエストするためのツール、コード例、ライブラリはいくつかありますが、ここでは手順を簡素化するために Postman を使用します。
X API v2 の Postman コレクションを環境に読み込むには、以下のボタンをクリックしてください。
Postman に X API v2 コレクションを読み込んだら、“Timelines” フォルダに移動し、“Reverse chronological home timeline” リクエストを見つけてください。
ステップ2: リクエストを認証する
X API に正しくリクエストするには、権限があることを確認する必要があります。このエンドポイントでは、OAuth 2.0 Authorization Code with PKCE または OAuth 1.0a User Context のいずれかでリクエストを認証してください。
Postman に keys と tokens を追加します。Postman 右上の “X API v2” という名前の環境を選択し、“initial value” と “current value” の各フィールドに keys と tokens を入力します(環境ドロップダウン横の目のアイコンをクリック)。
正しく設定できていれば、これらの変数はリクエストの authorization タブに自動的に反映されます。
ステップ3: ホームタイムラインを取得したいユーザーを特定して指定する
リクエスト内で、最近の Posts を取得したいユーザーを指定する必要があります。この例では、単一のユーザー ID を渡します。
ユーザー ID は、アカウントのプロフィール URL にあるアカウントのハンドルを表す数値です。たとえば、次のアカウントのユーザー名は XDevelopers です。
https://x.com/XDevelopers
このユーザー名をユーザー ID に変換するには、users lookup endpoint をユーザー名とともに使用し、ペイロード内の数値のユーザー ID を確認します。@XDevelopers の場合、ユーザー ID は 2244994945 です。
Postman で “Params” タブに移動し、id パラメータの “Value” 列にこのユーザー ID を入力します。
ステップ4: 取得したい fields を特定して指定する
ステップ3の後に “Send” ボタンをクリックすると、レスポンスにはデフォルトの Post object の fields(id、text、edit_history_tweet_ids)が含まれます。
追加の fields を受け取りたい場合は、fields および/または expansions パラメータで、それらの fields をリクエストに指定してください。
この演習では、異なるオブジェクトから追加で 3 種類の fields セットをリクエストします。
-
プライマリのユーザーオブジェクトに含める追加の tweet.created_at フィールド。
-
返される Post の関連する作成者のユーザーオブジェクトにおけるデフォルトの fields:id、name、username
-
関連ユーザーオブジェクトに含める追加の user.created_at フィールド。
Postman で「Params」タブに移動し、「Query Params」テーブルに次のキーと値のペアを追加します:
| | |
|---|
| Key | Value | Returned fields |
tweet.fields | created_at | tweets.created_at |
expansions | author_id | includes.users.id、includes.users.name、includes.users.username |
user.fields | created_at | includes.users.created_at |
| max_results | 5 | |
これで、「Send」ボタンの横に次の URL が表示されるはずです:
https://api.x.com/2/users/:id/timelines/reverse_chronological?tweet.fields=created_at&expansions=author_id&user.fields=created_at&max_results=5
ご注意:Postman では、URL フィールド内のパスパラメータ :id は id パラメータフィールドに入力した値に自動的には更新されません。したがって、上記の URL には 2244994945 ではなく :id が含まれています。
ステップ5: リクエストを送信してレスポンスを確認する
すべての設定が完了したら、「Send」ボタンを押すと次のレスポンスが返されます:
"data": [
{
"created_at": "2022-05-12T17:00:00.000Z",
"text": "本日、Twitter API を活用する開発者が開発者のために制作した技術動画シリーズ「Devs in the Details」が始動しました。🚀\n\n初回エピソードでは、@jessicagarson が @FactualCat をどのように構築したかを解説します。#WelcomeToOurTechTalk\n⬇️\n\nhttps://t.co/nGa8JTQVBJ",
"author_id": "2244994945",
"id": "1524796546306478083"
},
{
"created_at": "2022-05-11T19:16:40.000Z",
"text": "📢 明日 5 月 12 日|5:30 ET / 2:30pm PT、@jessicagarson、@alanbenlee、@i_am_daniele によるボットの未来についてのディスカッションにご参加ください。https://t.co/sQ2bIO1fz6",
"author_id": "2244994945",
"id": "1524468552404668416"
},
{
"created_at": "2022-05-09T20:12:01.000Z",
"text": "Twitter API でボットを作っていますか?🤖\n\n5 月 12 日(木)|5:30 ET / 2:30pm PT に、@jessicagarson、@alanbenlee、@iamdaniele がボットの未来について語り、皆さまのご質問にお答えします。🎙📆⬇️\n\nhttps://t.co/2uVt7hCcdG",
"author_id": "2244994945",
"id": "1523757705436958720"
},
{
"created_at": "2022-05-06T18:19:54.000Z",
"text": "ご応募、または本プログラムへの他者の推薦をご希望の方は、以下のフォームにご記入ください。\n\nhttps://t.co/LUuWj24HLu",
"author_id": "2244994945",
"id": "1522642324781633536"
},
{
"created_at": "2022-05-06T18:19:53.000Z",
"text": "各 Insider の詳細はフォーラムの投稿でさらにご紹介しています。\n\n新たに加わったメンバーを一緒にお祝いしましょう!🥳\n\nhttps://t.co/0r5maYEjPJ",
"author_id": "2244994945",
"id": "1522642323535847424"
}
],
"includes": {
"users": [
{
"created_at": "2013-12-14T04:35:55.000Z",
"name": "Twitter Dev",
"username": "TwitterDev",
"id": "2244994945"
}
]
},
"meta": {
"result_count": 5,
"newest_id": "1524796546306478083",
"oldest_id": "1522642323535847424",
"next_token": "7140dibdnow9c7btw421dyz6jism75z99gyxd8egarsc4"
}
}
ステップ6:結果をページングする
前のレスポンスの末尾に、以下の fields を含む meta オブジェクトがあります:
- oldest_id
- newest_id
- results_count
- next_token
- previous_token
ステップ4では、max_results の値を 5 に指定しました。これは各ページに最大 5 件の結果のみが含まれることを意味します。追加のページの data にアクセスするには、直近の結果に含まれる next_token フィールドの値を取得し、その文字列を Postman の params ページで pagination_token パラメータの値として設定し、その他はそのままにします。
| |
|---|
| Key | Value |
pagination_token | t3buvdr5pujq9g7bggsnf3ep2ha28 |
設定が完了したら、再度「Send」をクリックすると、次のページの結果を受け取れるはずです。
この概念をさらに説明するために、ページネーションに関するガイドを用意しています。
次のステップ
API Reference を参照してリクエストをカスタマイズする
コミュニティに参加してサポートを受ける