微信公衆平臺開發(26) ACCESS TOKEN

 本文介紹微信公衆平臺下Access Token的概念及獲取方法。php

1、Access Token

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

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

接口調用請求說明瀏覽器

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數據包給公衆號:app

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

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

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

 

2、AppId和AppSecret

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

 

成爲開發者以後,就能夠看到appid和appsecert了工具

 

若是沒有url和Token , 你能夠先用方倍工做室的下面的測試經過

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

 

 

3、獲取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
相關文章
相關標籤/搜索