原文排版更好看哦=>通过企业微信和定时任务实现你的提醒小助手
原文排版更好看哦=>通过企业微信和定时任务实现你的提醒小助手
原文排版更好看哦=>通过企业微信和定时任务实现你的提醒小助手
注册和新建应用的过程就不细说了,现在企业微信申请不用认证任何信息,任意微信号就可以注册
新建应用后按如下截图找到几个信息
1.corpid 企业 id
2.corpsecret 应用的 secret
3.agentid 应用的agentid
发送信息也很好实现,首先获取 token
token有个过期时间,用 redis 存储并设置过期时间,可以很方便的判断是否需要重新获取
获取到 token 之后就可以调用发送消息接口,具体参数可以看官方文档 接口文档
这里提供一个 php 的工具类
/** * 发送企业微信 * @param $content 内容 * @param $tokenName token 的 key * @param $secret 应用 secret * @param $agentId 应用 agentId * @author WJ * @date 2019-12-18 */ public function sendWXWork($content, $tokenName, $secret, $agentId) {//使用 redis 存储 token,设置一个超时时间,过期后重新获取 $redis = new \Redis(); $redis->connect('127.0.0.1', 6379); $redis->auth('****'); $token = $redis->get($tokenName); if (empty($token)) { $curl = curl_init(); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); //换上你的 corpid curl_setopt($curl, CURLOPT_URL, "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=****&corpsecret=" . $secret); $result = curl_exec($curl); curl_close($curl); $result = json_decode($result, true); if ($result['errcode'] === 0) { $token = $result['access_token']; $redis->set($tokenName, $token); $redis->expire($tokenName, $result['expires_in']); } else { return; } } //发送消息 $url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" . $token; $text_param = array( "touser" => "@all", "msgtype" => "text", "agentid" => $agentId, "text" => array("content" => $content) ); $requestData = json_encode($text_param); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Content-Length:' . strlen($requestData))); curl_setopt($curl, CURLOPT_POSTFIELDS, $requestData); curl_setopt($curl, CURLOPT_HEADER, 1); curl_setopt($curl, CURLINFO_HEADER_OUT, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); //设置请求头 $headers = array(); $header[] = 'User-Agent: iMAG0'; //设置一个你的浏览器 agent 的 header $header[] = 'token:Test'; //设置一个你的浏览器 agent 的 header curl_setopt($curl, CURLOPT_HTTPHEADER, $header); curl_exec($curl); curl_close($curl);
}
本文以实现一个喝水助手为例
先来说一下 linux 的定时任务
首先通过 crontab -e 命令新建定时任务,其实就是一个文本文档,格式如下
分 小时 日 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command
可以用特殊字符表示范围:
“*”代表取值范围内的数字
“/”代表”每”
“-”代表从某个数字到某个数字
“,”分开几个离散的数字
通过 crontab -l 可以查看当前所有的定时任务
最后通过 curl 命令访问写好的接口就大功告成了
喝水助手的代码如下
public function drink(){for($i = 1; $i <= 3; $i ++){ $content = '现在是' . date("Y-m-d H:i:s", time()) . "\n\n 该喝水了!!!\n\n 喝水了!!!\n\n 水了!!!\n\n 了!!!\n\n !!!\n\n !!\n\n !"; $this->sendWXWork($content, "drinkToken", "************", "************"); sleep(2); }
}
定时任务设置如下
30 6 * * * curl 127.0.0.1/drink 30 8 * * * curl 127.0.0.1/drink 0 11 * * * curl 127.0.0.1/drink 0 13 * * * curl 127.0.0.1/drink 30 15 * * * curl 127.0.0.1/drink 0 17 * * * curl 127.0.0.1/drink 30 18 * * * curl 127.0.0.1/drink 0 21 * * * curl 127.0.0.1/drink
1
xnode 2020-03-26 08:43:06 +08:00
加一个 该拉屎了!!
|
2
yEhwG10ZJa83067x 2020-03-26 08:50:49 +08:00
直接滴答清单不就行了,也是微信提醒
|
3
renmu 2020-03-26 09:07:12 +08:00 via Android
Chrome 有个喝水助手,还挺好用的
|
4
KevinRed OP |
5
xabc 2020-03-26 09:31:19 +08:00
手机闹钟不行吗? 简单问题复杂化 😂
|
6
erDaren 2020-03-26 09:34:54 +08:00 via Android
只能在企业微信收消息吗?还是微信也可以收到?
|
7
naix1573 2020-03-26 09:37:13 +08:00
|
8
Aprilming 2020-03-26 09:37:48 +08:00
滴答清单啊,能够实现微信推送的
|
9
7654 2020-03-26 09:40:28 +08:00
用企业微信搭了一个报警平台,然后再设置微信接收,每天轰炸不要太酸爽
|
10
polythene 2020-03-26 10:21:48 +08:00
这里有一个同样功能的,只不过通过微信公众号实现的提醒机器人
https://github.com/polyrabbit/WeCron |
12
KevinRed OP |
14
bnm965321 2020-03-26 10:57:37 +08:00
|
15
raymanr 2020-03-26 11:07:28 +08:00
@7654 我刚给部门写了一个邮件+钉钉机器人的提醒, 现在部门领导正用这个到处发垃圾信息... 各种上万字的邮件, 刷满屏的机器人消息... 我唯一能做的就是把我从邮件接收人和机器人 @列表里面去掉...
|
18
Liutos 2020-03-28 11:40:29 +08:00
我也做了个类似的工具: https://github.com/Liutos/cuckoo
发送给微信用的是方糖的服务,通知栏看的效果可能没有那么好:-p 除了发送到微信之外还会在桌面弹出通知,目前只做了对 macOS 的支持,所以需要一直开着电脑用 2333 欢迎各位大佬试用亲喷,在项目的 wiki 中有使用文档: https://github.com/Liutos/cuckoo/wiki |