php缓存accestoken_PHP获取微信access_token并缓存和自动更新
獲取AccessToken
AccessToken是企業(yè)號(hào)的全局唯一票據(jù),調(diào)用接口時(shí)需攜帶AccessToken。
AccessToken需要用CorpID和Secret來換取,不同的Secret會(huì)返回不同的AccessToken。正常情況下AccessToken有效期為7200秒,有效期內(nèi)重復(fù)獲取返回相同結(jié)果。access_token至少保留512字節(jié)的存儲(chǔ)空間。請(qǐng)求說明
Https請(qǐng)求方式: GET參數(shù)說明參數(shù)必須說明權(quán)限說明
每個(gè)secret代表了對(duì)應(yīng)用、通訊錄的不同權(quán)限;不同的管理組擁有不同的secret。返回說明
a)正確的Json返回結(jié)果:{
"access_token":?"accesstoken000001",
"expires_in":?7200
}參數(shù)說明
access_token獲取到的憑證。長度為64至512個(gè)字節(jié)
expires_in憑證的有效時(shí)間(秒)
b)錯(cuò)誤的Json返回示例:{
"errcode":?43003,
"errmsg":?"require?https"
}
主動(dòng)調(diào)用的頻率限制
當(dāng)你獲取到AccessToken時(shí),你的應(yīng)用就可以成功調(diào)用企業(yè)號(hào)后臺(tái)所提供的各種接口以管理或訪問企業(yè)號(hào)后臺(tái)的資源或給企業(yè)號(hào)成員發(fā)消息。
為了防止企業(yè)應(yīng)用的程序錯(cuò)誤而引發(fā)企業(yè)號(hào)服務(wù)器負(fù)載異常,默認(rèn)情況下,每個(gè)企業(yè)號(hào)調(diào)用接口都有一定的頻率限制,當(dāng)超過此限制時(shí),調(diào)用對(duì)應(yīng)接口會(huì)收到相應(yīng)錯(cuò)誤碼。
以下是當(dāng)前默認(rèn)的頻率限制,企業(yè)號(hào)后臺(tái)可能會(huì)根據(jù)運(yùn)營情況調(diào)整此閾值:基礎(chǔ)頻率
每企業(yè)調(diào)用單個(gè)cgi/api不可超過1000次/分,30000次/小時(shí)
企業(yè)每ip調(diào)用接口不可超過20000次/分,600000次/小時(shí)
第三方應(yīng)用提供商每ip調(diào)用接口不可超過40000次/分,1200000次/小時(shí)發(fā)消息頻率
每企業(yè)不可超過帳號(hào)上限數(shù)*30人次/天,發(fā)消息頻率不計(jì)入基礎(chǔ)頻率創(chuàng)建帳號(hào)頻率
每企業(yè)創(chuàng)建帳號(hào)數(shù)不可超過帳號(hào)上限數(shù)*3/月創(chuàng)建應(yīng)用頻率
每企業(yè)最大應(yīng)用數(shù)限制為30個(gè),創(chuàng)建應(yīng)用次數(shù)不可超過30*3/月創(chuàng)建群聊頻率
每個(gè)企業(yè)號(hào)成員(群的創(chuàng)建者)創(chuàng)建群聊個(gè)數(shù)不可超過500/天
*以上所有頻率,按天攔截則被屏蔽一天(自然天),按月攔截則屏蔽一個(gè)月(30天,非自然月),按分鐘攔截則被屏蔽60秒,按小時(shí)攔截則被屏蔽60分鐘。
注:身份驗(yàn)證接口的"根據(jù)code獲取成員信息/user/getuserinfo",若code合法則不受上述頻率限制。眾所周知,在微信開發(fā)中access_token是經(jīng)常用的。但是access_token的請(qǐng)求次數(shù)是有限制的,所以不能每次都重新請(qǐng)求,只有將它緩存到本地了。
代碼如下:function?accessToken()?{$tokenFile?=?"./access_token.txt";//緩存文件名
$data_Token?=?json_decode(file_get_contents($tokenFile));
if?($data_Token->expire_time?expire_time)?{
$appid?=?"你的appid";
$appsecret?=?"你的appsecret";
$url?=?"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";
$res?=?getJson($url);
$access_token?=?$res['access_token'];
if($access_token)?{
$data_Token['expire_time']?=?time()?+?7000;
$data_Token['access_token']?=?$access_token;
$fp?=?fopen($tokenFile,?"w");
fwrite($fp,?json_encode($data_Token));
fclose($fp);
}
}?else?{
$access_token?=?$data_Token->access_token;
}
return?$access_token;
}
//取得微信返回的JSON數(shù)據(jù)
function?getJson($url){
$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);
return?json_decode($output,?true);
}
將以上代碼保存到本地文件,直接調(diào)用即可,希望小編可以幫到你
總結(jié)
以上是生活随笔為你收集整理的php缓存accestoken_PHP获取微信access_token并缓存和自动更新的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 马逊s3云存储接口_使用 Amazon
- 下一篇: python str 换行_Python