access_token 是平臺的全局唯一接口調用憑據,開發者調用各接口時都需使用 access_token 進行認證。
開發者需要進行妥善保存 access_token,存儲至少要保留512個字符空間。access_token 的有效期目前為2個小時,需定時刷新,重復獲取將導致上次獲取的 access_token 失效。
**平臺的API調用所需的 access_token 的使用及生成方式說明:**
> 1、建議開發者使用中控服務器統一獲取和刷新 Access_token,其他業務邏輯服務器所使用的 access_token 均來自于該中控服務器,不應該各自去刷新,否則容易造成沖突,導致 access_token 覆蓋而影響業務;
> 2、目前 Access_token 的有效期通過返回的 expire_in 來傳達,目前是7200秒之內的值。中控服務器需要根據這個有效時間提前去刷新新 access_token。在刷新過程中,中控服務器對外輸出的依然是老 access_token,此時公眾平臺后臺會保證在刷新短時間內(10分鐘左右),新老 access_token 都可用,這保證了 API 業務認證的平滑過渡;
> 3、Access_token 的有效時間可能會在未來有調整,所以中控服務器不僅需要內部定時主動刷新,還需要提供被動刷新 access_token 的接口,這樣便于業務服務器在 API 調用獲知 access_token 已超時的情況下,可以觸發 access_token 的刷新流程。
> 4、Access_Token 每日刷新(申請)上限次數為 100 次。
**開發者可以使用 KeyID 和 KeySecert 調用本接口來獲取 access_token。KeyID 和 KeySecert可在“通訊密匙”頁中獲得。**
### 接口調用請求說明
#### 請求方式
**https請求方式: GET**
`https://【接口節點域名】/token?grant_type=client_credential&key=【KeyID】&secret=【KeySecert】`
**參數說明**
| 參數 | 是否必須 | 說明 |
| --- | --- | --- |
| grant_type | 是 | 獲取access_token填寫client_credential |
| key | 是 | 用戶唯一憑證 |
| secret | 是 | 用戶唯一憑證密鑰 |
#### 返回說明
正常情況下,系統會返回下述JSON數據包給開發者:
~~~
{"recode":0,"access_token":"ACCESS_TOKEN","expires_in":7200}
~~~
**參數說明**
| 參數 | 說明 |
| --- | --- |
| recode | 返回碼 |
| access_token | 獲取到的憑證 |
| expires_in | 憑證有效時間,單位:秒 |
#### 返回碼說明
| 返回碼 | 說明 |
| --- | --- |
| -1 | 系統繁忙,此時請開發者稍候再試 |
| 0 | 請求成功 |
| 40001 | 獲取access_token時KeySecret錯誤。請開發者認真比對KeySecret的正確性 |
| 40002 | 不合法的憑證類型 |
| 40003 | 不合法的 Key |
| 40005 | Key 封禁 (黑名單狀態) |
| 40006 | 已達當日最大 Token 申請上限 |