簡介
FedEx API 支援 OAuth 2.0 (持有人令牌) 驗證方法,以授權您的應用程式就 FedEx 資源提出 API 請求。此 OAuth 存取令牌需要每 60 分鐘重新產生一次,並需要就每宗 API 交易提供此 OAuth 存取令牌,以驗證和授權您對該資源的存取。
授權 API 詳情
此 API 可讓您授權 API 請求,且在驗證 FedEx 資源時需要該 API。以下部分說明了該 API 的先決條件:
當註冊 FedEx Developer Portal時,FedEx 會提供用戶端 ID (API 金鑰) 與用戶端密碼 (秘密金鑰) 的組合,以驗證您的項目之 API 請求。貴組織每個項目都會關聯至一個用戶端 ID 與用戶端密碼的組合,稱之為 API 憑證。
備註:顧客 (內部、兼容,或專利主顧客和子顧客) 可聯絡 FedEx 代表,以索取 API 和秘密金鑰。
為多添一重安全保障,除了 API 金鑰和秘密金鑰外,FedEx® 顧客 (內部、兼容,或專利主顧客和子顧客) 還可以發送子金鑰 (顧客秘密) 和子密碼 (顧客密碼),以建立 OAuth 令牌。該令牌用於每個 API 驗證請求。
您可於 FedEx 開發人员入口網站的「項目」頁面上,重新建立忘記的秘密金鑰。
備註:建立新金鑰將導致應用程式中的代碼發生變更。
本文件的重要資訊:
- 用戶端金鑰作為 API 金鑰
- 用戶端密碼作為秘密金鑰
- 子金鑰作為顧客金鑰
- 子密碼作為顧客密碼
API 憑證可作下列用途:
- 能識別正在調用 API 的項目。
- 授權存取您項目中已啟用的 API。
取得 API 憑證的方法
憑證乃基於 FedEx Developer Portal 中的輸入項目而建立:
- 用戶端 ID – 每當在 FedEx Developer portal 上建立項目時,都會建立 API 金鑰 (用戶端 ID)。您也可於項目概覽頁面上查看項目所關聯的 API 金鑰。
- 顧客秘密金鑰 – 當在 FedEx Developer Portal 上建立項目後,您會在確認頁面上看到秘密金鑰 (顧客秘密金鑰)。如有需要,可於項目概覽頁面上重新產生秘密金鑰。
備註:FedEx® 顧客(內部、兼容,或專利主顧客和子顧客)需要連同 API 金鑰和秘密金鑰,一併發送子金鑰(顧客秘密金鑰)和子密碼(顧客密碼),以建立 OAuth 令牌。如需了解如何取得子金鑰和子密碼,請參閱註冊憑證 API。
授權 API 的運作方式
API 授權
當您在 FedEx Developer Portal 上成功取得 API 憑證後,將使用該 OAuth 端點來取得存取令牌,以用作每個 API 交易的憑證。
與 OAuth 請求相關的必填輸入資料如下:
- grant_type – 顧客類型。(有效值:client_credentials、csp_credentials、client_pc_credentials)
- client_id – 請參閱項目 API 金鑰。
- client_secret – 請參閱項目 API 秘密金鑰。
對於 FedEx® 顧客 (內部、兼容,或專利主顧客和子顧客),請發送下方的額外輸入內容:
- child_id – 註冊憑證 API 請求所傳回的顧客金鑰。
- child_secret – 註冊憑證 API 請求所傳回的顧客密碼
此請求的結果應傳回如下內容:
- access_token – API 交易中需要使用的經過加密的 OAuth 令牌。
- token_type – 令牌類型。在此個案中,即是持有人驗證。
- expires_in – 以毫秒為單位的令牌到期時間。標準的令牌到期時間為一小時。
- Scope – 向顧客提供之授權的範圍。
範例
請求:
POST /oauth/token HTTP/1.1
grant_type= client_credentials&client_id=your client ID&client_secret=Your secret
回應:
{ ″access_token″: ″eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……..″,
″token_type″: ″bearer″,
″expires_in″: 3600,
″scope″: ″CXS″
}
FedEx® 內部或兼容顧客的請求:
POST /oauth/token HTTP/1.1
grant_type= csp_credentials&client_id=Client ID&client_secret= Client secret&child_key=Child key&child_secret=Child Secret
回應:
{ ″access_token″: ″eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……..″,
″token_type″: ″bearer″,
″expires_in″: 3600,
″scope″: ″CXS″
}
FedEx® 專利主顧客和子顧客的請求:
POST /oauth/token HTTP/1.1
grant_type= client_pc_credentials&client_id=Client ID&client_secret= Client secret&child_key=Child key&child_secret=Child Secret
回應:
{ ″access_token″: ″eyJhbGciOiJIUzI1NiIsInR5cCI6IkpX……..″,
″token_type″: ″bearer″,
″expires_in″: 3600,
″scope″: ″CXS″
}
備註:存取令牌會在一小時後到期,可透過向 OAuth/令牌端點發出 POST 請求來重新生成存取令牌。
Response