このクイックスタートガイドでは、Postman を使用し、指定した一連の fields を含めてフルアーカイブ検索エンドポイントへ最初のリクエストを送る方法を説明します。
各種言語のサンプルコードは、GitHub の X API v2 sample code リポジトリをご覧ください。
前提条件
フルアーカイブ検索エンドポイントは現在、プロおよびエンタープライズのアクセスでのみ利用可能です。このエンドポイントを使用するには、プロアクセスへアップグレードするか、エンタープライズのアクセスレベルを申請してください。アクセスの承認に加えて、リクエストを認証するためのキーとトークンが必要です。以下の手順でキーとトークンを生成できます。
-
開発者ポータルで、エンタープライズまたはプロのアクセスが付与されたProjectに移動し、その Project 内に関連付けられたdeveloper Appがあることを確認します。
-
アプリの「Keys and tokens」ページに移動し、必要なクレデンシャルを生成します。すべてのクレデンシャルは安全な場所に保存してください。
ステップ1:ツールまたはライブラリから始める
このエンドポイントにリクエストを送るためのツール、コード例、ライブラリはいくつかありますが、ここでは手順を簡素化するために Postman を使用します。
X API v2 の Postman コレクションを環境に読み込むには、次のボタンをクリックしてください。
Postman に X API v2 コレクションを読み込んだら、Search Posts > Full-archive search request に移動します。
ステップ2:リクエストを認証する
X API に正しくリクエストするには、権限を確認する必要があります。このエンドポイントでは、OAuth 2.0 App-Only の認証方式でリクエストを認証します。
キーとトークン、特に App Access Token(App-only Bearer Token とも呼ばれます)を Postman に追加してください。Postman 右上の環境ドロップダウン横の目のアイコンをクリックし、環境名「X API v2」を選択して、「initial value」と「current value」フィールドにキーとトークンを入力します。
正しく設定されていれば、この変数はリクエストの Authorization タブに自動的に反映されます。
ステップ3:検索クエリを作成する
各フルアーカイブ検索には単一の検索クエリが必要です。この例では、@XDevelopers アカウントが投稿した Post にマッチするクエリを使用します。このクエリでは from 演算子を使い、XDevelopers(大文字小文字は不問)を指定します。
from:XDevelopers
Postman で「Params」タブに移動し、この ID、またはカンマ区切りの Post の ID の文字列を、ids パラメータの「Value」列に入力します。
| Key | Value | Description |
|---|
query | from:XDevelopers | フルアーカイブ検索エンドポイントに送信する検索クエリ |
ステップ4:取得したい fields を特定して指定する
ステップ3の後に「Send」ボタンをクリックすると、レスポンスにはデフォルトのPost オブジェクトの fields が返されます:id、text、edit_history_tweet_ids。編集機能が導入される前の Post が返る場合、edit_history_tweet_ids フィールドは含まれません。このフィールドの履歴バックフィルは実施されていません。
これらのデフォルト fields を超えて追加の fields が必要な場合は、リクエストで fields および/または expansions パラメータを使用して指定します。
この演習では、異なるオブジェクトから4種類の fields セットをリクエストします。
- デフォルトの Post オブジェクトの fields
- プライマリの Post オブジェクトにおける追加の tweet.created_at フィールド
- 返された Post に関連する投稿者の user オブジェクトのデフォルト fields
- 関連するユーザーオブジェクトにおける追加の user.description フィールド
Postman で「Params」タブに移動し、次の key:value を「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 | description | includes.users.description |
「Send」ボタンの横に次の URL が表示されているはずです。
https://api.x.com/2/tweets/search/all?query=from:XDevelopers&tweet.fields=created_at&expansions=author_id&user.fields=created_at
ご注意くださいデフォルトでは、最新の Post が最大10件だけ返されます。1回のリクエストで10件を超える Post を取得したい場合は、max_results パラメータを使用し、1リクエストあたり最大500件の Post を指定できます。同様に、デフォルトでは直近30日分の Post が返されます。30日より古い Post を取得したい場合は、API コールで start_time と end_time パラメータを使用してください。
ステップ5:リクエストを送信し、レスポンスを確認する
すべての準備が整ったら、「Send」ボタンをクリックすると、次のようなレスポンスが返ってきます。
{
"data": [
{
"author_id": "2244994945",
"created_at": "2020-06-11T16:05:06.000Z",
"id": "1271111223220809728",
"text": "今夜は@jessicagarsonがお気に入りのPythonパッケージをRで実行する方法をご紹介します。🍿\n\nデータサイエンスのための2つの強力なプログラミング言語を組み合わせて使う方法を学び、TwitterのDeveloper Labsの最近の検索エンドポイントを使用したライブデモをご覧ください。https://t.co/v178oUZNuj"
},
{
"author_id": "2244994945",
"created_at": "2020-06-10T19:25:24.000Z",
"id": "1270799243071062016",
"text": "新しいTwitter APIの構築に向けて取り組む中、いくつかのLabs v1エンドポイントの廃止予定時期を延長しました。詳細はこちら 📖 https://t.co/rRWaJYJgKk"
},
{
"author_id": "2244994945",
"created_at": "2020-06-09T18:08:47.000Z",
"id": "1270417572001976322",
"text": "アノテーションはTweetについてより詳しく知るのに役立ちます。興味のあるトピックを見つけることもできます。🔬\n\nこのチュートリアルでは、@suhemparackがアノテーションとフィルタリングされたストリームエンドポイントを使用してCOVID-19に関連するTweetを見つける方法を紹介します。\n\nあなたもぜひ学んでみてください。⤵️\nhttps://t.co/qwVOgw0zSV"
}
],
"includes": {
"users": [
{
"description": "TwitterのDevRelチームの公式アカウントです。Twitter APIに関する最新情報、ニュース、イベント情報をお届けします。\n\n#BlackLivesMatter",
"id": "2244994945",
"name": "Twitter Dev",
"username": "TwitterDev"
}
]
},
"meta": {
"newest_id": "1271111223220809728",
"oldest_id": "1270417572001976322",
"result_count": 3
}
}
この例では、非常にシンプルなクエリを使用しました。より詳細なガイドをご覧になりたい場合は、以下のリソースをご参照ください。
次のステップ
API Reference を使ってリクエストをカスタマイズする
クエリオペレーターの一覧をすべて見る
これらのエンドポイント向けのサンプルコードを利用する