In diesem Artikel werden das Konzept und die Methode zum Erhalten von Zugriffstoken auf der öffentlichen WeChat-Plattform vorgestellt.
1. Zugriffstoken
access_token ist das weltweit eindeutige Ticket des offiziellen Kontos, das beim Aufrufen jeder Schnittstelle verwendet werden muss . Unter normalen Umständen ist access_token 7200 Sekunden lang gültig. Eine wiederholte Erfassung führt dazu, dass das letzte access_token ungültig wird.
Offizielle Konten können AppID und AppSecret verwenden, um diese Schnittstelle aufzurufen und access_token zu erhalten. AppID und AppSecret können im Entwicklungsmodus abgerufen werden (Sie müssen Entwickler sein und Ihr Konto hat keinen abnormalen Status). Beachten Sie, dass beim Aufruf aller WeChat-Schnittstellen das https-Protokoll verwendet werden muss.
Beschreibung der Schnittstellenaufrufanforderung
http请求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
Parameterbeschreibung
参数 | 是否必须 | 说明 |
---|---|---|
grant_type | 是 | 获取access_token填写client_credential |
appid | 是 | 第三方用户唯一凭证 |
secret | 是 | 第三方用户唯一凭证密钥,既appsecret |
Rückgabebeschreibung
Unter normalen Umständen gibt WeChat das folgende JSON-Datenpaket an das öffentliche Konto zurück:
{"access_token":"ACCESS_TOKEN","expires_in":7200}
参数 | 说明 |
---|---|
access_token | 获取到的凭证 |
expires_in | 凭证有效时间,单位:秒 |
Im Fehlerfall gibt WeChat Fehlercode und andere zurück Informationen, JSON-Datenpaket Das Beispiel sieht wie folgt aus (dieses Beispiel ist ein ungültiger AppID-Fehler):
{"errcode":40013,"errmsg":"invalid appid"}
Verwendung im WeChat Backend, um erweiterte Funktionen zu finden – Entwicklungsmodus
Nachdem Sie Entwickler geworden sind, können Sie die Appid und das Appsecert sehen
Wenn keine URL und kein Token vorhanden sind, können Sie zunächst den folgenden Test von Fangbei Studio verwenden, um
URL zu bestehen: http://discuz.comli.com/ test.php
Token: weixin
Das Programm ist wie folgt implementiert
$appid = ""; $appsecret = ""; $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($ch); curl_close($ch); $jsoninfo = json_decode($output, true); $access_token = $jsoninfo["access_token"];
Sie können die Adresse auch direkt in das einfügen Browser-Adressleiste. Nach der Ausführung erhalten Sie die folgenden Daten
{"access_token":"N2L7KXa084WvelONYjkJ_traBMCCvy_UKmpUUzlrQ0EA2yNp3Iz6eSUrRG0bhaR_viswd50vDuPkY5nG43d1gbm-olT2KRMxOsVE08RfeD9lvK9lMguNG9kpIkKGZEjIf8Jv2m9fFhf8bnNa-yQH3g","expires_in":7200}
Die Parameterbeschreibung lautet wie folgt
| <🎜 ><🎜>Beschreibung<🎜><🎜> | ||||||
access_token<🎜> | Erhaltene Anmeldeinformationen<🎜> | ||||||
expires_in<🎜> | Gutscheingültigkeitszeit, Einheit: Sekunden<🎜> td> |
Oder verwenden Sie das offizielle Schnittstellen-Debugging-Tool. Die Adresse lautet:
Verwenden Sie das Web-Debugging-Tool, um die benutzerdefinierte Menüoberfläche zu debuggen
Klicken Sie, um das Problem zu überprüfen und
Auf diese Weise erhalten Sie auch das Zugriffstoken
Jedes Mal, wenn ein öffentliches Konto eine Schnittstelle aufruft, kann es einen korrekten oder falschen Rückgabecode erhalten. Entwickler können die Schnittstelle anhand der Rückgabecodeinformationen debuggen und Fehler beheben Fehler.
Die Beschreibung des globalen Rückkehrcodes lautet wie folgt:
返回码 | 说明 |
---|---|
-1 | 系统繁忙 |
0 | 请求成功 |
40001 | 获取access_token时AppSecret错误,或者access_token无效 |
40002 | 不合法的凭证类型 |
40003 | 不合法的OpenID |
40004 | 不合法的媒体文件类型 |
40005 | 不合法的文件类型 |
40006 | 不合法的文件大小 |
40007 | 不合法的媒体文件id |
40008 | 不合法的消息类型 |
40009 | 不合法的图片文件大小 |
40010 | 不合法的语音文件大小 |
40011 | 不合法的视频文件大小 |
40012 | 不合法的缩略图文件大小 |
40013 | 不合法的APPID |
40014 | 不合法的access_token |
40015 | 不合法的菜单类型 |
40016 | 不合法的按钮个数 |
40017 | 不合法的按钮个数 |
40018 | 不合法的按钮名字长度 |
40019 | 不合法的按钮KEY长度 |
40020 | 不合法的按钮URL长度 |
40021 | 不合法的菜单版本号 |
40022 | 不合法的子菜单级数 |
40023 | 不合法的子菜单按钮个数 |
40024 | 不合法的子菜单按钮类型 |
40025 | 不合法的子菜单按钮名字长度 |
40026 | 不合法的子菜单按钮KEY长度 |
40027 | 不合法的子菜单按钮URL长度 |
40028 | 不合法的自定义菜单使用用户 |
40029 | 不合法的oauth_code |
40030 | 不合法的refresh_token |
40031 | 不合法的openid列表 |
40032 | 不合法的openid列表长度 |
40033 | 不合法的请求字符,不能包含uxxxx格式的字符 |
40035 | 不合法的参数 |
40038 | 不合法的请求格式 |
40039 | 不合法的URL长度 |
40050 | 不合法的分组id |
40051 | 分组名字不合法 |
41001 | 缺少access_token参数 |
41002 | 缺少appid参数 |
41003 | 缺少refresh_token参数 |
41004 | 缺少secret参数 |
41005 | 缺少多媒体文件数据 |
41006 | 缺少media_id参数 |
41007 | 缺少子菜单数据 |
41008 | 缺少oauth code |
41009 | 缺少openid |
42001 | access_token超时 |
42002 | refresh_token超时 |
42003 | oauth_code超时 |
43001 | 需要GET请求 |
43002 | 需要POST请求 |
43003 | 需要HTTPS请求 |
43004 | 需要接收者关注 |
43005 | 需要好友关系 |
44001 | 多媒体文件为空 |
44002 | POST的数据包为空 |
44003 | 图文消息内容为空 |
44004 | 文本消息内容为空 |
45001 | 多媒体文件大小超过限制 |
45002 | 消息内容超过限制 |
45003 | 标题字段超过限制 |
45004 | 描述字段超过限制 |
45005 | 链接字段超过限制 |
45006 | 图片链接字段超过限制 |
45007 | 语音播放时间超过限制 |
45008 | 图文消息超过限制 |
45009 | 接口调用超过限制 |
45010 | 创建菜单个数超过限制 |
45015 | 回复时间超过限制 |
45016 | 系统分组,不允许修改 |
45017 | 分组名字过长 |
45018 | 分组数量超过上限 |
46001 | 不存在媒体数据 |
46002 | 不存在的菜单版本 |
46003 | 不存在的菜单数据 |
46004 | 不存在的用户 |
47001 | 解析JSON/XML内容错误 |
48001 | api功能未授权 |
50001 | 用户未授权该api |
公众号调用接口并不是无限制的。为了防止公众号的程序错误而引发微信服务器负载异常,默认情况下,每个公众号调用接口都不能超过一定限制,当超过一定限制时,调用对应接口会收到如下错误返回码:
{"errcode":45009,"errmsg":"api freq out of limit"}
各接口调用频率限制如下:
接口 | 每日限额 |
---|---|
获取access_token | 2000 |
自定义菜单创建 | 1000 |
自定义菜单查询 | 10000 |
自定义菜单删除 | 1000 |
创建分组 | 1000 |
获取分组 | 1000 |
修改分组名 | 1000 |
移动用户分组 | 100000 |
上传多媒体文件 | 5000 |
下载多媒体文件 | 10000 |
发送客服消息 | 500000 |
获取带参数的二维码 | 10000 |
获取关注者列表 | 500 |
获取用户基本信息 | 5000000 |
获取网页授权access_token | 2000000 |
刷新网页授权access_token | 2000000 |
网页授权获取用户信息 | 2000000 |
更多微信公众平台开发-ACCESS TOKEN 相关文章请关注PHP中文网!