ユーザーのPostおよびメンションのタイムラインエンドポイントのはじめ方
このクイックスタートガイドでは、Postman を使用して、指定した一連の fields を含むユーザーのPostタイムラインエンドポイントへの最初のリクエストの作成方法を説明します。
さまざまな言語のサンプルコードを確認したい場合は、X API v2 sample code の GitHub リポジトリをご覧ください。
前提条件このガイドを完了するには、リクエストを認証するための一連の keys and tokens が必要です。以下の手順に従うことで、これらのキーとトークンを生成できます。
タイムラインリクエストを構築する手順
この例では、ユーザーのPostタイムライン by ID エンドポイントにリクエストを行いますが、このクイックスタートで学んだ内容はユーザーメンションタイムラインのリクエストにも適用できます。
ステップ1: ツールまたはライブラリを選ぶ
このエンドポイントへのリクエストには、複数のツール、コード例、ライブラリを利用できますが、ここでは手順を簡素化するために Postman を使用します。
X API v2 の Postman コレクションを環境に読み込むには、次のボタンをクリックしてください。
Postman に X API v2 コレクションを読み込んだら、timeline フォルダーに移動し、「User Post timeline by ID」リクエストを探してください。
ステップ2: リクエストを認証する
X API に正しくリクエストするには、権限があることを確認する必要があります。このエンドポイントでは、OAuth 2.0 App-Only、OAuth 2.0 Authorization Code with PKCE、または OAuth 1.0a User Context のいずれかでリクエストを認証する必要があります。
簡便のため、このリクエストでは OAuth 2.0 App-Only を使用します。ただし、非公開の metrics や Post を取得したい場合は、他の認証方法のいずれかを使用する必要があります。
Postman には、App Access Token(App-only Bearer Token とも呼ばれます)を含む keys と tokens を追加する必要があります。これを行うには、Postman 右上の “X API v2” という名前の環境を選択し、環境ドロップダウン横の目のアイコンをクリックして、「initial value」と「current value」の各 fields に keys と tokens を追加します。
正しく設定できていれば、この変数はリクエストの authorization タブに自動的に反映されます。
ステップ3: 取得したいユーザーを特定して指定する
リクエスト内で、最近の Post を取得したいユーザーを指定する必要があります。この例では、単一のユーザー 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 が返されます。
id と text 以外の追加の fields を受け取りたい場合は、リクエストで fields および/または expansions パラメータを指定してください。
この演習では、異なるオブジェクトから以下の3種類の追加の fields セットをリクエストします:
- プライマリのツイートオブジェクトに対する追加の tweet.created_at field
- 返される Posts の作成者に対応するユーザーオブジェクトのデフォルト fields(id、name、username)
- 関連するユーザーオブジェクトに対する追加の user.created_at field
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/tweets?tweet.fields=created_at&expansions=author_id&user.fields=created_at&max_results=5
ご注意ください:Postman では、URL フィールドのパスパラメータ :id は id パラメータフィールドに入力した値に自動的には更新されません。したがって、上記の URL には 2244994945 ではなく :id が含まれています。
ステップ5: リクエストを送信してレスポンスを確認する
すべての設定が完了したら、「Send」ボタンを押すと次のレスポンスが返ってきます:
"data": [
{
"author_id": "2244994945",
"created_at": "2020-09-03T17:31:39.000Z",
"id": "1301573587187331074",
"text": "本日より、開発者ポータルで v2 API の月間ツイート使用状況を確認できるようになりました。✨📊\n\nフィルター済みストリームと最近の検索で受信したツイート数を追跡します。詳しくはこちら: https://t.co/nfJHkFRQcZ https://t.co/vFXmoj3qaA"
},
{
"author_id": "2244994945",
"created_at": "2020-09-03T15:43:00.000Z",
"id": "1301546240887398401",
"text": "RT @snowman: X API を使い、Python、Flask、Postgres、Heroku でリアルタイムのゴルフリーダーボードを作りました。\n\n「leaderboard」をダイレクトメッセージで送って…"
},
{
"author_id": "2244994945",
"created_at": "2020-09-01T20:07:50.000Z",
"id": "1300888112948752389",
"text": "⛳ なぜゴルファーは替えのシャツを持ち歩くのでしょうか? ホールインワンに備えるためです。\n\nさて注目していただけたところで、@snowman と @johnd が #TwitterAPI を使ってリアルタイムのゴルフリーダーボードを構築した方法を学んでください。📖\n\nhttps://t.co/rRKeKmaRrN"
},
{
"author_id": "2244994945",
"created_at": "2020-08-28T23:14:22.000Z",
"id": "1299485505478963200",
"text": "RT @jessicagarson: @ThePracticalDev に、Twitter API v2 の使い方に関する最初のチュートリアルを投稿しました! ユーザーのツイートを探索する方法が学べます…"
},
{
"author_id": "2244994945",
"created_at": "2020-08-21T19:10:05.000Z",
"id": "1296887316556980230",
"text": "@PennMedCDH が Twitter のデータを使って COVID-19 の健康危機をどのように理解しているかをご覧ください。📊\n\nhttps://t.co/1tdA8uDWes"
}
],
"includes": {
"users": [
{
"created_at": "2013-12-14T04:35:55.000Z",
"id": "2244994945",
"name": "Twitter Dev",
"username": "TwitterDev"
}
]
},
"meta": {
"newest_id": "1301573587187331074",
"next_token": "t3buvdr5pujq9g7bggsnf3ep2ha28",
"oldest_id": "1296887316556980230",
"previous_token": "t3equkmcd2zffvags2nkj0nhlrn78",
"result_count": 5
}
}
ステップ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」をクリックすると次のページの結果を受け取れるはずです。
この概念をさらに説明するための pagination ガイドも用意しています。
次のステップ
API Reference を使ってリクエストをカスタマイズする
コミュニティに問い合わせてサポートを受ける