微信公衆平臺開發-access_token獲取及應用(含源碼)
做者: 孟祥磊-《微信公衆平臺開發實例教程》php
不少系統中都有access_token參數,對於微信公衆平臺的access_token參數,微信服務器判斷該公衆平臺所擁有的權限,容許或者禁止公衆平臺進行當前的操做。html
1、access_token做用及使用場景json
(一)access_token的做用api
access_token由公衆號的AppID和AppSecret組成,因此具備識別公衆號的做用。數組
(二)access_token的使用場景服務器
能夠把它比喻成一個鑰匙,經過access_token,微信公衆號才能調用微信接口,如微信服務器 IP的獲取接口,長連接轉短連接接口、獲取微信關注用戶列表及獲取用戶基本信息的接口等等。微信
微信服務器也是經過access_token來判斷公衆號是否有調用該接口的權限。如在調用微信服務器IP獲取接口時,須要帶上access_token參數,微信在接收到請求後會先判斷該access_token的公衆號是否具備獲取微信服務器IP的接口權限,若是有,返回查詢的數據,若是沒有,會返回該公衆號無獲取微信服務器IP接口的權限。app
(三)access_token的特色微信公衆平臺
access_token存儲至少要保留512個字符空間。access_token的有效期目前爲2個小時,重複獲取將致使上次獲取的access_token失效。函數
(四)access_token的存儲調用策略
access_token在後期應用開發中應採起的策略,如圖所示,將access_token存儲到中控服務器,全部須要用到該參數的程序都應訪問中控服務器獲取access_token,中控服務器判斷當前access_token是否有效並刷新便可。
(五)獲取access_token值
1.接口說明
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"}
2.參數AppId和AppSecret
獲取access_token時會用到兩個很是重要的參數,即AppId和AppSecret,可在開發-基本配置中查看如圖所示。
3.獲取access_token
<?php /* *獲取微信token */ //1.包含wei_function.php require('wei_function.php'); $appid="wx78478e595939c538"; $secret="5540e8ccab4f71dfad752f73cfb85780"; //2.獲取token地址,並替換$appid和$secret $url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret.""; //3.調用wei_function.php文件內的getdata()函數 $output=getdata($url); //4.json_decode解碼JSON數據轉變爲數組,並經過 $token=object_array(json_decode($output)); //輸出數組 //print_r($token); //5.輸出access_token echo $token['access_token']; ?>
代碼解析
require('wei_function.php');該函數文件能夠購買《微信公衆平臺開發實例教程》,在該書中第95頁有詳細講解。
孟祥磊公開課交流羣號:230175725