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的更多相关文章

  1. 微信硬件平台(八) 3-0ESP8266向微信服务器请求设备绑定的用户

    1调试助手 请求URL: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=自己微信ID&a ...

  2. weblogic下 微信公众平台获取token报错

    问题描述: 开发微信公众平台,本地tomcat可以正常获取token并发送模板消息,部署在weblogic后报错,异常信息如下: java.security.InvalidKeyException: ...

  3. 微信硬件平台(八) 1 esp8266从自己的服务器获取token

    从txt获取token #include <ESP8266WiFi.h> #define host_token "www.dongvdong.top" #define ...

  4. 微信硬件平台(一) 公众号 ESP8266 Arduino LED

    微信硬件平台 本文目的,使用微信公众号控制ESP8266的LED开和关.进一步使用微信当遥控器(避免写APP或者IOS或者小程序),控制一切设备.给两个关键的总教程参考. 官网教程  微信硬件平台 微 ...

  5. C#开发微信门户及应用(9)-微信门户菜单管理及提交到微信服务器

    微信公众号(包括服务号和订阅号)都可以对菜单进行自定义设置,我们为了方便管理,一般先把菜单数据在本地管理维护,需要更新的时候,把它们更新到微信服务器上就可以了.本文基于这个方式,介绍我的微信门户平台管 ...

  6. 服务器通过微信公众号Token验证测试的代码(Python版)

    我在阿里云租了一个云服务器,然后想把这个作为我的微信公众号的后台,启用微信公众号开发者需要正确的响应微信服务器的Token验证,为此把这个验证的Python代码贴出来,只要在服务器上运行这段代码,注意 ...

  7. java微信开发API第一步 服务器接入

    I如何接入服务器,下面就为大家进行介绍 一.说明 * 本示例根据微信开发文档:http://mp.weixin.qq.com/wiki/home/index.html最新版(4/3/2016 5:34 ...

  8. java微信开发(wechat4j)——支持微信JS-SDK的jsapi_ticket中控服务器

    jsapi_ticket是使用js-sdk必须要的一个凭证,需要配置在js中. jsapi_ticket获取 要获取jsapi_ticket可以使用如下的方法 String jsapi_ticket ...

  9. Java企业微信开发_09_素材管理之下载微信临时素材到本地服务器

    一.本节要点 1.获取临时素材接口 请求方式:GET(HTTPS) 请求地址:https://qyapi.weixin.qq.com/cgi-bin/media/get?access_token=AC ...

随机推荐

  1. Javascript 跨域知识详细介绍

    JS跨域知识总结: 在“跨域”一词经常性地出现以前,我们其实已经频繁地使用它了.如在A网站的img,src指向B网站的某一图片地址,毫无疑问,这在通常情况下都是能正常显示的(且不论防盗链技术):同样, ...

  2. 2018-08-22 为中文API的简繁转换库添加迟到的持续集成

    前两天在V2EX偶遇反馈帖第一次见以汉字命名的 Java 类 - V2EX, 于是复习了一下半年多没碰的项目program-in-chinese/zhconverter. 前文介绍了发布过程: 在Ma ...

  3. verilog实现两个数的最大公因数

    module gcd(clk,clr,go_i,x_i,y_i,d_o); input clk,clr; input go_i; :] x_i,y_i; :] d_o; :] x,y,r; alway ...

  4. JHipster生成微服务架构的应用栈(四)- 网关微服务示例

    本系列文章演示如何用JHipster生成一个微服务架构风格的应用栈. 环境需求:安装好JHipster开发环境的CentOS 7.4(参考这里) 应用栈名称:appstack 认证微服务: uaa 业 ...

  5. centos7安装jdk环境

    有时候安装一些软件或者服务都需要jdk环境,今天就在centos上安装最新的jdk环境. 检测历时安装 1.查看Linux自带的JDK是否已安装 # java -version 2.查看JDK信息 # ...

  6. C#-判断语句(五)

    判断语句主要有if...else.switch和 条件?语句1:语句2 三种,而if...else中又有if语句,if...else.if...else if...else和if中嵌套if这几种,但是 ...

  7. 虚拟机-linux系统中图形界面和命令行界面切换

    linux系统中图形化界面和命令行界面之间的切换可以分为两种,临时性切换和永久性切换. 临时性切换即切换后只对本次生效,系统重启后界面还是默认界面. 永久性切换即切换后系统开机后永远处于的界面. 临时 ...

  8. mssql sql server 其它系统函数 parsename 点语法字符串分割函数应用简介

    转自:http://www.maomao365.com/?p=4534 一. parsename函数功能简介 parsename函数的主要功能是:可以快速的使用”.”关键字分解字符串,并返回.分解后指 ...

  9. c#数据批量插入

    由于之前面试中经常被问到有关EF的数据批量插入问题,今天以Sqlserver数据库为例,对.net中处理数据批量处理的方案进行了测试对比. 1.四种测试方案 (1)普通的EF数据批量插入:即调用DbS ...

  10. SQL Server 锁实验(重建索引)

    昨晚某现场报一个重建索引失败的问题,远程查看后发现是自动收缩的内部会话引发的锁申请超时,突然想起来自己的加锁实验还没完成索引重建部分,今天有空正好做一下: USE [数据库名] GO ALTER IN ...