微信获取token服务器处理,微信硬件平台(九) 自己的服务器从微信获取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文件必須給絕對路徑!!!!!!
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服务器处理,微信硬件平台(九) 自己的服务器从微信获取token并保存txt...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 地球外存在“生命之源”首次确认:距离地球
- 下一篇: 吉利发射9颗卫星上天!CEO:我们野心没