OAuth 2.0 身份驗證
一些快速 API 使用 OAuth 2.0 身份驗證流程而不是簽名身份驗證。
建立授權
OAuth 2.0 身份驗證需要存取權杖。若要取得存取令牌,您將使用 API 憑證向 Expedia 閘道傳送請求。您的憑證的兩個部分將被合併,Base64 編碼,並作為帶有 Authorization
前綴 e.g 的 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}'