署名の作成
ベース URL は、クエリ文字列やハッシュパラメータを除いた、リクエストの送信先となる URL です。ここで正しいプロトコルを使用することが重要なため、URL の「https://」の部分が、API に送信される実際のリクエストと一致していることを確認してください。
パラメータの収集
oauth_* パラメータを署名に含める必要があるため、それらも収集します。以下は、リクエストの認可 からのパラメータです。
これらの値は 1 つの文字列にエンコードされ、後で使用します。文字列を構築する手順は非常に厳密に決められています。
- 署名対象となるすべてのキーと値を パーセントエンコード します。
- エンコード済みのキーでアルファベット順に [1] パラメータのリストをソートします [2]。
- 各キー/値ペアについて:
- エンコード済みキーを出力文字列の末尾に追加します。
- 文字 ‘=’ を出力文字列の末尾に追加します。
- エンコード済み値を出力文字列の末尾に追加します。
- まだ残りのキー/値ペアがある場合は、文字 ‘&’ を出力文字列の末尾に追加します。
署名ベース文字列の作成
- HTTP メソッドを大文字に変換し、その値を出力文字列とします。
- 出力文字列に ‘&’ 文字を追加します。
- URL をパーセントエンコードし、出力文字列に追加します。
- 出力文字列に ‘&’ 文字を追加します。
- パラメーター文字列をパーセントエンコードし、出力文字列に追加します。
& 文字がちょうど 2 つだけ含まれている必要があります。パラメーター文字列内のパーセント % 文字は、signature base string 内では %25 にエンコードされている必要があります。
署名キーを取得する
アプリケーションがどのアカウントの代わりに動作しているかを識別する値は OAuth token secret と呼ばれます。この値は複数の方法で取得でき、そのすべてが obtaining access tokens で説明されています。
繰り返しになりますが、これらの値はアプリケーション固有の秘密として厳重に管理する必要があります。値が漏洩した疑いがある場合は、トークンを再生成してください (このページに記載されているトークンは、実際のリクエストでは無効として扱われます) 。
これら 2 つの値は組み合わせて signing key を構成し、署名の生成に使用されます。signing key は単に、percent encoded されたトークンシークレットです。
request token を取得する場合など、一部のフローではトークンシークレットがまだ分からないことがあります。この場合、signing key は、percent encoded された consumer secret の後ろにアンパサンド文字「&」を連結したものになります。