微信硬件平台 自己的服务器从微信获取token并保存txt
Posted kekeoutlook
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信硬件平台 自己的服务器从微信获取token并保存txt相关的知识,希望对你有一定的参考价值。
1安装crontab:
yum install crontabs
说明:
service crond start //启动服务 service crond stop //关闭服务 service crond restart //重启服务 service crond reload //重新载入配置 查看crontab服务状态:service crond status 手动启动crontab服务:service crond start
查看crontab服务是否已设置为开机启动
chkconfig crond on
2使用创建新任务
调用一次获取依次token,存在txt文件里
token.php
请修改自己微信的开发者ID信息
强调: 所有路径都必须给绝对路径!!! 不管是执行文件本身路径,还是文件里面填写的其他路径!!!
手动执行正常可以改变
但是!!!!!!!!!!!!!!!
自动任务执行,txt始终不变!!!!
原因在于,自动执行任务没有加载环境变量配置,不知道这个txt位置,所以txt文件必须给绝对路径!!!!!!
<?php class TokenUtil { //获取access_token并保存到token.txt文件中 public static function build_access_token(){ $ch = curl_init(); //初始化一个CURL对象 curl_setopt($ch, CURLOPT_URL, "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=自己的微信开发者ID&secret=自己的微信开发者密码");//设置你所需要抓取的URL curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//设置curl参数,要求结果是否输出到屏幕上,为true的时候是不返回到网页中,假设上面的0换成1的话,那么接下来的$data就需要echo一下。 $data = json_decode(curl_exec($ch)); // echo data; if($data->access_token){ $token_file = fopen("/var/www/html/WexinToken/token.txt","w") or die("Unable to open file!");//打开token.txt文件,没有会新建 fwrite($token_file,$data->access_token);//重写tken.txt全部内容 fclose($token_file);//关闭文件流 }else{ echo $data->errmsg; } curl_close($ch); } //设置定时器,每两小时执行一次build_access_token()函数获取一次access_token public static function set_interval(){ echo "go set_interval!"; ignore_user_abort();//关闭浏览器仍然执行 set_time_limit(0);//让程序一直执行下去 $interval = 7200;//每隔一定时间运行 $switch = include ‘switch.php‘; while($switch){ $switch = include ‘switch.php‘; // build_access_token(); sleep($interval);//等待时间,进行下一次操作。 echo "go!"; }; } //读取token public static function read_token(){ $token_file = fopen("token.txt", "r") or die("Unable to open file!"); $rs = fgets($token_file); fclose($token_file); return $rs; } } // echo "1!"; $wechat = new TokenUtil(); // echo "2!"; $wechat->build_access_token(); // $wechat->read_token(); ?>
token.txt
用于存放接收到的token
给与token.txt操作权限
sudo chmod -R 777 test.txt
创建一个新任务,每两个小时调用一次token.php,修改token.txt
crontab -e
按 i 进入插入模式
先用 一分钟请求一次
*/1 * * * * /usr/bin/php /var/www/html/WexinToken/token.php
验证下是否修改了txt
成功后删除原来的定时任务
crontab -r
输入一个新命令 每两个小时执行一次
* */2 * * * /usr/bin/php /var/www/html/WexinToken/token.php
退出保存
1按 Esc
2按:
3按wq
4回车
查看正在运行的定时任务
crontab -l
重新载入配置文件或者重启服务以开始执行
service crond restart
如果想要删除配置,执行
crontab -r
no crontab for root 解决方案
主要原因是由于这个liunx服务器 第一次使用 crontab ,还没有生成对应的文件导致的,执行了 编辑(crontab -e)后 就生成了这个文件
[[email protected] ~]# crontab -l
no crontab for root
这个问题非常简单,同样在 root 用户下输入 crontab -e
1 按 Esc
2按:
3按wq
4回车
在输入 crontab -l 就没有问题了
以上是关于微信硬件平台 自己的服务器从微信获取token并保存txt的主要内容,如果未能解决你的问题,请参考以下文章