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 申请上限 |