微信公眾號開發(二)微信公眾號的access_token
攜手創作,共同成長!這是我參與「掘金日新計劃 · 8 月更文挑戰」的第26天,點選檢視活動詳情
微信對使用者使用開放了很多的功能,如:自定義選單介面、客服介面、獲取使用者資訊介面、使用者分組介面、群發介面,但是為了保證使用者訪問這些功能相對安全,每次訪問都需要帶上一個祕鑰去驗證身份。那麼這個祕鑰就是access_token。
在呼叫這些介面時,都需要傳入一個相同的引數 access_token,它是公眾賬號的全域性唯一票據,它是介面訪問憑證。
access_token是公眾號的全域性唯一票據,公眾號呼叫各介面時都需使用access_token。開發者需要進行妥善儲存。
access_token的儲存至少要保留512個字元空間。
access_token的有效期目前為2個小時,需定時重新整理,重複獲取將導致上次獲取的 access_token失效。
Access_token是微信端給你生成的,需要呼叫微信端介面去獲取這個資料,當你獲取到這個資料之後,你自然就可以去呼叫其他的介面了。
微信生成access_token介面呼叫每天使用限制次數的(每天2000次),但其實正常我們兩個小時獲取一次的話,可能一天也就呼叫十幾次。
這裡大概就需要說一下,關於access_token,每次獲取完成,將其,與獲取時間存入資料庫中,每次呼叫需要使用到access_token介面的方法的時候,去資料庫裡邊取,同時判斷是否過期,如果過期,重新請求access_token。基本就是這樣。
也就是說,access_token這個玩意是微信給你生成的,自生成之時起,有效期兩個小時,超時失效。每次獲取存資料庫,呼叫的時候判斷過沒過期,過期,重新獲取。
上面大概就是我對access_token的理解。下面我大概就是重複一下官方文件對於access_token獲取的一些複述,加上我自己的一些理解。
有需要看官方文件的同學,請移步《微信公眾平臺官方文件》
介面呼叫請求說明
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"}
返回錯誤碼說明:
| 返回碼 | 說明 | | ------- | ------------------------------------------------------- | | -1 | 系統繁忙,此時請開發者稍候再試 | | 0 | 請求成功 | | 40001 | AppSecret錯誤或者AppSecret不屬於這個公眾號,請開發者確認AppSecret的正確性 | | 40002 | 請確保grant_type欄位值為client_credential | | 40164 | 呼叫介面的IP地址不在白名單中,請在介面IP白名單中進行設定。(小程式及小遊戲呼叫不要求IP地址在白名單內。) | | 89503 | 此IP呼叫需要管理員確認,請聯絡管理員 | | 89501 | 此IP正在等待管理員確認,請聯絡管理員 | | 89506 | 24小時內該IP被管理員拒絕呼叫兩次,24小時內不可再使用該IP呼叫 | | 89507 | 1小時內該IP被管理員拒絕呼叫一次,1小時內不可再使用該IP呼叫 |
最後放一下,我呼叫微信獲取access_token的介面:
/**
* @name 獲取微信access_token
*/
public function getAccessToken()
{
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$this->appid."&secret=".$this->appsecrt;
$info = file_get_contents($url);
// 解析完成,這是一個物件
$obj = json_decode($info);
$this->access_token = $obj->access_token;
}
有好得 建議,請在下方輸入你的評論。
歡迎訪問個人部落格 https://guanchao.site
歡迎訪問我的小程式:開啟微信->發現->小程式->搜尋“時間裡的”
- 微信公眾號開發(二)微信公眾號的access_token
- ueditor上傳圖片新增水印
- nginx(二)伺服器中配置超時時間的方法
- 小程式警告:根據 sitemap 的規則[0],當前頁面 [pagesindexindex] 將被索引
- nginx(一)nginx配置反向代理與負載均衡
- VUE3(三十一)html單頁面使用VUE3
- VUE3(三十二)vue使用xlsx解析excel檔案
- thinkphp5 Auth 許可權管理
- javascript實現動態分頁
- sublime不使用補丁進行漢化
- php7.2安裝OCI8擴充套件支援oracle資料庫
- 微信小程式(三十一)自定義watch監聽屬性
- 微信小程式(二十六)微信小程式解析富文字的幾種方式
- 微信小程式(二十五)微信小程式富文字編輯器editor上傳圖片
- linux安裝及使用composer
- javascript 實現純前端將資料匯出excel兩種方式
- PHP編碼規範
- css例項(一)滑鼠hover下拉選單
- 微信小程式(十五)小程式回到頂部
- 微信小程式(十三)小程式彈窗wx.showToast及wx.showModal