- どのアプリケーションがリクエストを送信しているのか
- リクエストがどのユーザーの代理でポストしているのか
- ユーザーが、そのユーザーの代理でポストする権限をそのアプリケーションに付与しているかどうか
- 送信中に第三者によってリクエストが改ざんされていないかどうか
Authorization ヘッダーを含めることを要求します。前述の HTTP リクエストにこのヘッダーを追加したバージョンは、次のようになります (通常、Authorization ヘッダーは 1 行である必要がありますが、ここでは可読性のために折り返しています) 。
| oauth_consumer_key | xvz1evFS4wEEPTGEFPHBog |
| oauth_nonce | kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg |
oauth_signature パラメーターには、他のすべてのリクエストパラメーターと 2 つの秘密の値を署名アルゴリズムに通して生成される値が含まれます。署名は、X がリクエストが送信中に改ざんされていないこと、リクエストを送信しているアプリケーションが正当であること、そしてそのアプリケーションがユーザーのアカウントとやり取りする権限を持っていることを検証できるようにするためのものです。
このリクエストの oauth_signature を計算するプロセスは、署名の作成で説明しています。
| oauth_signature | tnnArxj06cWHq44gCs1OSKk/jLY= |
oauth_signature_method は HMAC-SHA1 です。この値は、X API に送信されるすべての認可済みリクエストで使用する必要があります。
| oauth_signature_method | HMAC-SHA1 |
oauth_timestamp パラメーターは、リクエストが作成された時刻を示します。この値は、リクエストが生成される時点における Unix エポックからの経過秒数である必要があり、ほとんどのプログラミング言語で容易に生成できます。X は、あまりにも過去に作成されたリクエストを拒否するため、リクエストを生成するコンピューターの時計を NTP で同期させておくことが重要です。
| oauth_timestamp | 1318622958 |
oauth_token パラメーターは、通常、ユーザーが自分のアカウントへのアクセスをあなたのアプリケーションと共有することを許可していることを表します。この値が渡されない、または別の形式のトークンになる認証リクエストもいくつかありますが、それらについては アクセス トークンの取得 で詳細に説明しています。一般的な用途の多くのリクエストでは、アクセストークン と呼ばれるものを使用します。
自分のアカウント用の有効な アクセストークン は、開発者コンソール 上の X app の設定ページで生成できます。
| oauth_token | 370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb |
oauth_version パラメーターは、X API に送信されるすべてのリクエストで常に 1.0 にする必要があります。
| oauth_version | 1.0 |
ヘッダー文字列の構築
- 文字列 “OAuth ” (末尾のスペースを含む) を DST に追加します。
- 上で挙げた 7 つのパラメータの各キーと値のペアについて、次を行います:
- キーをパーセントエンコードし、その結果を DST に追加します。
- 等号文字 ‘=’ を DST に追加します。
- 二重引用符 ‘”’ を DST に追加します。
- 値をパーセントエンコードし、その結果を DST に追加します。
- 二重引用符 ‘”’ を DST に追加します。
- まだ残っているキーと値のペアがある場合は、カンマ ‘,’ とスペース ‘ ‘ を DST に追加します。