# 获取普通 AccessToken
# 接口说明
获取网站应用全局唯一后台接口调用凭据(
access_token
)。调用绝大多数后台接口时都需使用 access_token,开发者需要进行妥善保存。本接口应在服务器端调用。
# 关于网站授权 access_token 和普通 access_token 的区别
- 微信网站授权是通过 OAuth2.0 机制实现的,在用户授权给网站应用后,网站应用可以获取到一个网站应用页面授权特有的接口调用凭证(网站授权 access_token),通过网站授权 access_token 可以进行授权后接口调用,如获取用户基本信息;
- 其他微信接口,需要通过本文的接口“获取 access_token”接口来获取到的普通 access_token 调用。
# 注意事项
access_token 的存储与更新
access_token
的存储至少要保留 512 个字符空间;access_token
的有效期目前为 2 个小时 ,需定时刷新,重复获取将导致上次获取的access_token
失效;- 建议开发者使用中控服务器统一获取和刷新
access_token
,其他业务逻辑服务器所使用的access_token
均来自于该中控服务器,不应该各自去刷新,否则容易造成冲突,导致access_token
覆盖而影响业务; access_token
的有效期通过返回的expires_in
来传达,目前是 7200 秒之内的值,中控服务器需要根据这个有效时间提前去刷新。在刷新过程中,中控服务器可对外继续输出的老access_token
,此时公众平台后台会保证在 5 分钟内,新老access_token
都可用,这保证了第三方业务的平滑过渡;access_token
的有效时间可能会在未来有调整,所以中控服务器不仅需要内部定时主动刷新,还需要提供被动刷新access_token
的接口,这样便于业务服务器在 API 调用获知access_token
已超时的情况下,可以触发access_token
的刷新流程。
# 接口调用请求说明
GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
# 请求参数说明
参数 | 类型 | 是否必填 | 描述 |
---|---|---|---|
grant_type | string | 是 | 填写 client_credential |
appid | string | 是 | 开放唯一凭证,即 网站应用账号 ID。(需要已完成网站应用的开通,且账号没有异常状态) |
secret | string | 是 | 开放唯一凭证密钥,即 网站应用账号密钥 |
# 请求参数示例
{}
# 返回参数说明
参数 | 类型 | 描述 |
---|---|---|
access_token | string | 获取到的凭证 |
expires_in | number | 凭证有效时间,单位:秒。目前是 7200 秒之内的值。 |
errcode | number | 错误码 |
errmsg | string | 错误信息 |
# 返回参数示例
正常返回
{
"access_token": "ACCESS_TOKEN",
"expires_in": 7200
}
错误时返回
{
"errcode": 40013,
"errmsg": "invalid appid"
}
# 错误码
错误码 | 错误描述 | 最低版本 |
---|---|---|
公共错误码 | - | |
0 | 请求成功 | |
40001 | AppSecret 错误或者 AppSecret 不属于这个网站应用,请开发者确认 AppSecret 的正确性 | |
40002 | 请确保 grant_type 字段值为 client_credential | |
40013 | 不合法的 AppID,请开发者检查 AppID 的正确性,避免异常字符,注意大小写 | |
40125 | 不合法的 secret,请检查 secret 的正确性,避免异常字符,注意大小写 | |
40164 | 调用接口的 IP 地址不在白名单中,请在接口 IP 白名单中进行设置 | |
41004 | 缺少 secret 参数 | |
50004 | 禁止使用 token 接口 | |
50007 | 账号已冻结 | |
61024 | 第三方平台 API 需要使用第三方平台专用 token |