微信公衆平臺下Access Token的概念及獲取方法

一、Access Token

access_token是公衆號的全局唯一票據,公衆號調用各接口時都需使用access_token。正常情況下access_token有效期爲7200秒,重複獲取將導致上次獲取的access_token失效。

公衆號可以使用AppID和AppSecret調用本接口來獲取access_token。AppID和AppSecret可在開發模式中獲得(需要已經成爲開發者,且帳號沒有異常狀態)。注意調用所有微信接口時均需使用https協議。

接口調用請求說明

http請求方式: GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

參數說明

參數 是否必須 說明
grant_type 獲取access_token填寫client_credential
appid 第三方用戶唯一憑證
secret 第三方用戶唯一憑證密鑰,既appsecret

返回說明

正常情況下,微信會返回下述JSON數據包給公衆號:

{"access_token":"ACCESS_TOKEN","expires_in":7200}
參數 說明
access_token 獲取到的憑證
expires_in 憑證有效時間,單位:秒

錯誤時微信會返回錯誤碼等信息,JSON數據包示例如下(該示例爲AppID無效錯誤):

{"errcode":40013,"errmsg":"invalid appid"}

 

二、AppId和AppSecret

在微信後臺使用找到高級功能-開發模式

 

成爲開發者之後,就可以看到appid和appsecert了

 

如果沒有url和Token , 你可以先用方倍工作室的下面的測試通過

URL:   http://discuz.comli.com/test.php
Token:  weixin

 

 

三、獲取Access Token

程序實現如下

複製代碼
$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"];
複製代碼

你也可以直接在瀏覽器地址欄中,拼接出地址,執行後,獲得如下數據

{"access_token":"N2L7KXa084WvelONYjkJ_traBMCCvy_UKmpUUzlrQ0EA2yNp3Iz6eSUrRG0bhaR_viswd50vDuPkY5nG43d1gbm-olT2KRMxOsVE08RfeD9lvK9lMguNG9kpIkKGZEjIf8Jv2m9fFhf8bnNa-yQH3g","expires_in":7200}

參數說明如下

參數

說明

access_token

獲取到的憑證

expires_in

憑證有效時間,單位:秒

或者使用官方的接口調試工具,地址爲:

使用網頁調試工具調試自定義菜單接口 

點擊檢查問題得,得到

這樣也獲得了access token

 

 

附:全局返回碼說明

公衆號每次調用接口時,可能獲得正確或錯誤的返回碼,開發者可以根據返回碼信息調試接口,排查錯誤。

全局返回碼說明如下:

返回碼 說明
-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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章