可以写个定时任务,定时更新token,将新token保存到文件中或redis、数据库中。
<?php
$AppID = "123123";
$AppSecret = "123123";
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$AppID."&secret=".$AppSecret;
$result = http_request($url);
$tokendata = json_decode($result, 1);
if (isset($tokendata['access_token'])) {
$dir = __DIR__; //真实路径,crontab命令的php执行在cli模式下,不能正确识别相对路径,所以使用__DIR__
$filename = $dir."/access_token.ini";
create_file($filename, $tokendata['access_token']);
} else {
echo "出错了".var_export($tokendata, true);
}
//生成文件,保存token,还可以放到数据库或redis中,这里就演示放到文件中
function http_request($url, $data = null) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
if (!empty($data)) {
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}
//生成文件
function create_file($filename, $content) {
$fp = fopen($filename, "w");
fwrite($fp, "" . $content);
fclose($fp);
echo "更新token成功";
}
接下来设置定时任务,我们以Linux的CentOS为例,使用crontab设置计划任务。
5 * * * * /usr/local/bin/php -f /data/wwwroot/access.php >> /dev/null 2>&1
以上命令设置了每隔1小时,即每小时的第05分钟执行access.php。
网友回复
DLNA与UPnP的区别和不同?
苏超自建抢票app,通过先预约再抽签化解高并发抢票?
python如何让给电脑在局域网中伪装成电视接收手机的投屏图片视频播放?
如何结合python+js如何自己的视频编码与加密播放直播?
python如何在电脑上通过局域网将本地视频或m3u8视频投屏电视播放?
腾讯视频爱奇艺优酷vip电影电视剧视频如何通过python绕过vip收费直接观看?
有没有可免费观看全球电视台直播m3u8地址url的合集?
有没有实现观影自由的免vip影视苹果 CMS V10 API的可用url?
python如何实时检测电脑usb插入检测报警?
如何判断真人操作的鼠标移动直线轨迹与机器操作的轨迹?