# 获取普通 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 |