微信硬件平台(九) 自己的服务器从微信获取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)后 就生成了这个文件
[root@localhost ~]# crontab -l
no crontab for root
这个问题非常简单,同样在 root 用户下输入 crontab -e
1 按 Esc
2按:
3按wq
4回车
在输入 crontab -l 就没有问题了
微信硬件平台(九) 自己的服务器从微信获取token并保存txt的更多相关文章
- 微信硬件平台(八) 3-0ESP8266向微信服务器请求设备绑定的用户
1调试助手 请求URL: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=自己微信ID&a ...
- weblogic下 微信公众平台获取token报错
问题描述: 开发微信公众平台,本地tomcat可以正常获取token并发送模板消息,部署在weblogic后报错,异常信息如下: java.security.InvalidKeyException: ...
- 微信硬件平台(八) 1 esp8266从自己的服务器获取token
从txt获取token #include <ESP8266WiFi.h> #define host_token "www.dongvdong.top" #define ...
- 微信硬件平台(一) 公众号 ESP8266 Arduino LED
微信硬件平台 本文目的,使用微信公众号控制ESP8266的LED开和关.进一步使用微信当遥控器(避免写APP或者IOS或者小程序),控制一切设备.给两个关键的总教程参考. 官网教程 微信硬件平台 微 ...
- C#开发微信门户及应用(9)-微信门户菜单管理及提交到微信服务器
微信公众号(包括服务号和订阅号)都可以对菜单进行自定义设置,我们为了方便管理,一般先把菜单数据在本地管理维护,需要更新的时候,把它们更新到微信服务器上就可以了.本文基于这个方式,介绍我的微信门户平台管 ...
- 服务器通过微信公众号Token验证测试的代码(Python版)
我在阿里云租了一个云服务器,然后想把这个作为我的微信公众号的后台,启用微信公众号开发者需要正确的响应微信服务器的Token验证,为此把这个验证的Python代码贴出来,只要在服务器上运行这段代码,注意 ...
- java微信开发API第一步 服务器接入
I如何接入服务器,下面就为大家进行介绍 一.说明 * 本示例根据微信开发文档:http://mp.weixin.qq.com/wiki/home/index.html最新版(4/3/2016 5:34 ...
- java微信开发(wechat4j)——支持微信JS-SDK的jsapi_ticket中控服务器
jsapi_ticket是使用js-sdk必须要的一个凭证,需要配置在js中. jsapi_ticket获取 要获取jsapi_ticket可以使用如下的方法 String jsapi_ticket ...
- Java企业微信开发_09_素材管理之下载微信临时素材到本地服务器
一.本节要点 1.获取临时素材接口 请求方式:GET(HTTPS) 请求地址:https://qyapi.weixin.qq.com/cgi-bin/media/get?access_token=AC ...
随机推荐
- bootstrap日期控件(双日期、清空等问题解决)
bootstrap以它优美的外观和丰富的组件,使它成为目前最流行的前端框架.在项目开发中,我们使用它的日期控件确实遇到了一些问题: 1.日期控件后面两个图标点击触发失效 2.双日期关联问题 3.双日期 ...
- 改变RadioButton的文字位置以及距离
在默认情况下,RadioButton的 文字位置和文字的距离是不变的,为了可以改变它,我们可以用以下的方法. 1.改变文字的位置 android:button="@null" // ...
- Nginx http相关常用配置总结
Nginx http相关常用配置总结 by:授客 QQ:1033553122 测试环境 nginx-1.10.0 client_max_body_size Syntax: client_ma ...
- JMeter 监听器之保存响应到文件
监听器之保存响应到文件 by:授客 QQ:1033553122 测试环境 apache-jmeter-2.13 1. 保存结果到响应文件 说明: 文件名称前缀:设置响应文件所在路径(路径必须已存在 ...
- java笔记----常见的异常
常见的可控异常 运行时的异常 异常信息的获取
- IntelliJ IDEA常用快捷键(一)
Ctrl+J 键常用的组合 psvm:public static void main(String[] args) { } Serr: System.err.println("") ...
- 大话C#之委托
开篇先来扯下淡,上篇博客LZ在结尾说这篇博客会来说说C#中的事件.但是当LZ看完事件之后发现事件是以委托为基础来实现的,于是LZ就自作主张地在这篇博客中先来说说委托,还烦请各位看官见谅!!!另外关于委 ...
- Linux CFS调度器之队列操作--Linux进程的管理与调度(二十七)
1. CFS进程入队和出队 完全公平调度器CFS中有两个函数可用来增删队列的成员:enqueue_task_fair和dequeue_task_fair分别用来向CFS就绪队列中添加或者删除进程 2 ...
- c/c++ 用克鲁斯卡尔(kruskal)算法构造最小生成树
c/c++ 用克鲁斯卡尔(kruskal)算法构造最小生成树 最小生成树(Minimum Cost Spanning Tree)的概念: 假设要在n个城市之间建立公路,则连通n个城市只需要n-1条线路 ...
- Windows Server 2016-Powershell管理站点复制
对于Active Directory的Windows PowerShell包括管理复制.网站.域和森林,域控制器以及分区的能力.例如Active Directory的站点和服务管理单元和repadmi ...