OAuth 2.0 驗證
為您的 Rapid API 實作設定 OAuth 2.0 驗證
除了住宿 API 之外,所有 Rapid API 均採用 OAuth 2.0 驗證流程。此資訊適用於:
- Rapid Car API
- Rapid Flight API
- Rapid Activities API
- Rapid 輸入提示 API
注意: Lodging API 的架構中已包含簽名驗證,但若要將輸入提示 API 與 Lodging 搭配使用,您還需加入 OAuth 2.0 驗證。
建立授權
OAuth 2.0 驗證需要一個存取憑證。要取得存取憑證,您需使用您的 API 憑證向 Expedia 閘道器發送請求。您的憑證將由兩部分組合而成,經過 Base64 編碼後,將作為Authorization 標頭傳送,並加上Basic 前綴,例如 e.g. 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);取得不透明存取憑證
在發出 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}'