OAuth 2.0認証
Rapid APIのいくつかは、署名認証ではなくOAuth 2.0認証プロセスを使用しています。
認可の確立
OAuth 2.0認証にはアクセストークンが必要です。アクセストークンを取得するには、API認証情報を使用してエクスペディア ゲートウェイにリクエストを送信します。e.g. あなたのクレデンシャルの2つの部分が結合され、Base64エンコードされ、Authorization
プレフィックス付きBasic
ヘッダとして送信されますBasic <base64>
。
例認証情報をBase64フォーマットでエンコードします。
var client-id = postman.getEnvironmentVariable("client-id");
var client-secret= postman.getEnvironmentVariable("client-secret");
var base64Hash = CryptoJS.enc.Utf8.parse(client-id + ":" + client-secret);
var base64 = CryptoJS.enc.Base64.stringify(base64Hash);
postman.setEnvironmentVariable("base64",base64);
注: ローンチ・マネージャーがRapid APIキー(api_key
)または共有シークレット(shared_secret
)を提供している場合、コード例でそれぞれclient-id
およびclient-secret
を指定している場合は、それらを使用することができます。この用法では、両者は互換性があります。
不透明なアクセストークンの取得
APIリクエストを行う前に、不透明なアクセストークン(ユーザーやリソースに関する情報を含まないトークン)が必要です。
サンプル請求
POST – https://api.ean.com/identity/oauth2/v3/token
Header:
Key: ‘Authorization’
Value: ‘Basic {base64}’
回答例
{
"access_token": "p1xy6rxahicQPUIX_Sq6a52yFnHXpX3ImaSX9sKiUI4:XM8qZiTr1HPDc8FgBE5HLvFTFdICuRFV0-l7gFWI-WU",
"token_type": "bearer",
"expires_in": 1800,
"scope": "demand-solutions.demand-api-wrappers-playground.all"
}
不透明なアクセストークンを使用
access_token
を取得したので、それを使ってOAuth 2.0をサポートしているエンドポイント (先行入力、Geography、Carsなど) にリクエストを出すことができます。
GET - https://test.ean.com/v3/regions?include=standard&language=en-US&iata_location_code=SEA
Header:
Key: 'Authorization'
Value: 'Bearer {access_token}'