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