Skip to main content

OAuth 1.0a

X デベロッパープラットフォームの多くのエンドポイントでは、X アカウントに代わって操作(API リクエスト)を行うために OAuth 1.0a 方式を使用します。たとえば、X デベロッパーアプリをお持ちの場合、ユーザーがそのアプリを認証する限り、任意の X アカウントに代わって API リクエストを行うことができます。 ご注意: HMAC-SHA1 やパーセントエンコーディングといった概念になじみがない場合は、認証プロセスを大幅に簡素化してくれる API クライアントを紹介している、下記の「便利なツール」セクションをご確認いただくことをおすすめします。

主な概念

キーとトークンによるリクエストの署名

各 API リクエストには、生成した複数のキーとトークンを authorization ヘッダーで渡して署名する必要があります。まず、X デベロッパーアプリの詳細ページで、以下を含むいくつかのキーとトークンを生成できます。

ユーザーに代わってリクエストを行う

署名を作成する際には、リクエストを行う対象となるユーザーを表すアクセストークンのセットが必要です。 X デベロッパーアプリを所有する X アカウントを表すアクセストークンのセットは、アプリの詳細ページから生成できます。ただし、別の X アカウントに代わってリクエストを行いたい場合は、そのアカウントの所有者が 3-legged OAuth フローの一環として自分のアカウントでサインインし、アクセスを許可する必要があります。このプロセスの出力として得られるアクセストークンのセット(oauth_token と oauth_token_secret)を用いて、OAuth 1.0a リクエストを行えます。 これらのキーとトークンが揃ったら、ゼロから署名を作成することができます。自分で行うのは十分に理解している場合を除いておすすめしません。OAuth 1.0a が必要なエンドポイントへのリクエストを行うには、下記のツールのいずれかを使用することをおすすめします。 参考として、生成したすべてのトークンを authorization ヘッダーで渡した cURL リクエストの署名例を以下に示します。
注意: ユーザーアクセストークンは機密情報であり、厳重に保護する必要があります。アクセストークンが生成されると、それが表すユーザーはあなたのアプリケーションがそれらを安全に保管することを信頼していることになります。API キーおよびユーザーアクセストークンの両方のセキュリティが侵害された場合、アプリケーションが個人情報やアカウント機能へのアクセスを公開してしまう可能性があります。キーおよびアクセストークンの安全な管理について詳しく学ぶことをおすすめします。

便利なツール

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