Skip to main content

OAuth 1.0a

X Developer Platform 上の多くのエンドポイントは、OAuth 1.0a メソッドを使用して、X アカウントを代表して操作したり、API リクエストを送信したりします。たとえば、X 開発者向けの App を持っている場合、そのユーザーがあなたの App で認証を行うかぎり、任意の X アカウントを代表して API リクエストを実行できます。 注意:HMAC-SHA1 やパーセントエンコーディングといった概念に慣れていない場合は、認証プロセスを大幅に簡略化できる API クライアントをいくつか紹介している、以下の「useful tools」セクションを参照することをおすすめします。

主要な概念

キーとトークンを使ったリクエストへの署名

各 API リクエストには、生成された複数のキーとトークンを authorization ヘッダーに含めて署名する必要があります。まずは、X 開発者用 App の詳細ページで、次のような複数のキーとトークンを生成できます。

ユーザーに代わってリクエストを送信する

シグネチャを作成する際には、ユーザーに代わってリクエストを送信する対象となるユーザーを表す一連のアクセス・トークンが必要です。 X 開発者 App を所有している X アカウントを表すアクセス・トークンのセットは、App の詳細ページから生成できます。ただし、別の X アカウントに代わってリクエストを送信したい場合は、そのアカウントの所有者が、3-legged OAuth flow の一環として自分のアカウントにサインインし、あなたにアクセス権を付与する必要があります。この処理の結果として、OAuth 1.0a リクエストを行うために使用できる一連のアクセス・トークン (oauth_tokenoauth_token_secret) が生成されます。 これらのキーとトークンを取得したら、シグネチャを作成してゼロから組み立てることもできます。ただし、仕組みを十分に理解している場合、または OAuth 1.0a を必要とするエンドポイントへのリクエスト送信に以下で紹介するツールのいずれかを使用している場合を除き、この方法は推奨しません。 参考として、生成されたすべてのトークンを Authorization ヘッダーに渡して署名した cURL リクエストの例を次に示します。
注意: ユーザーアクセス トークンは機密性が高いため、厳重に保護する必要があります。アクセス トークンが生成されると、そのトークンの対象となるユーザーは、あなたのアプリケーションがそれらを安全に保持してくれると信頼していることになります。APIキーとユーザーアクセス トークンの両方のセキュリティが侵害された場合、アプリケーションを通じて非公開情報やアカウント機能へのアクセスが外部にさらされるおそれがあります。キーとアクセス トークンの保護 について、ぜひ詳しく学んでください。

便利なツール

リクエストへの署名のプロセスは複雑です。認証トークンの大部分を自動生成してくれる API クライアントライブラリを使用することをおすすめします。