使用云函数定时发送工时填写提醒。
# 准备工作
企业微信群内添加机器人获取 webhook 地址:
代码语言:javascript复制https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx
这里我们选用普通文本消息来提醒就可以了:
代码语言:javascript复制{
"msgtype": "text",
"text": {
"content": "广州今日天气:29度,大部分多云,降雨概率:60%",
"mentioned_list": ["wangqing", "@all"],
"mentioned_mobile_list": ["13800001111", "@all"]
}
}
需要注意 mentioned_list
的内容是用户 userid,如果获取不到 userid,则可以使用 mentioned_mobile_list
或者直接 @all
即可。
# 编写云函数
- 在云函数后台新建云函数
remind
后,进入云函数详情 - 在函数代码 tab 页下新建
package.json
文件,输入以下内容:
{
"name": "remind",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {},
"author": "",
"license": "ISC",
"dependencies": {
"request-promise": "^4.2.6",
"@cloudbase/node-sdk": "latest"
}
}
- 在函数入口
index.js
中输入以下代码:
'use strict';
const rp = require('request-promise');
exports.main = async (event, context) => {
let params = {
method: 'POST',
uri: 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=[your key]',
body: {
msgtype: 'text',
text: {
content: '填工时喽。',
mentioned_list: ['@all'],
},
},
json: true,
};
let remindInfo = await rp(params);
return event;
};
- 保存(并安装依赖)即可。
# 定时器配置
在云函数的函数配置 tab 中编辑基本信息,在定时触发器一栏点击『编辑代码』,输入以下内容保存即可:
代码语言:javascript复制{
// triggers 字段是触发器数组,目前仅支持一个触发器,即数组只能填写一个,不可添加多个
"triggers": [
{
// name: 触发器的名字,规则见下方说明
"name": "remind",
// type: 触发器类型,目前仅支持 timer (即定时触发器)
"type": "timer",
// config: 触发器配置,在定时触发器下,config 格式为 cron 表达式,规则见下方说明
"config": "00 45 17 * * MON-FRI *"
}
]
}
config
的意思为每周一到周五的下午 5 点 45 分执行一次。
Cron 表达式有七个必需字段,按空格分隔。其中,每个字段都有相应的取值范围:
排序 | 字段 | 值 |
---|---|---|
第一位 | 秒 | 0 - 59 的整数 |
第二位 | 分钟 | 0 - 59 的整数 |
第三位 | 小时 | 0 - 23 的整数 |
第四位 | 日 | 1 - 31 的整数(需要考虑月的天数) |
第五位 | 月 | 1 - 12 的整数或 JAN、FEB、MAR、APR、MAY、JUN、JUL、AUG、SEP、OCT、NOV 和 DEC |
第六位 | 星期 | 0 - 6 的整数或 MON、TUE、WED、THU、FRI、SAT 和 SUN,其中 0 指周日,1 指星期一,以此类推 |
第七位 | 年 | 1970 - 2099 的整数 |
下面列举一些 Cron 表达式和相关含义:
- */5 * * * * * * 表示每 5 秒触发一次
- 0 0 2 1 * * * 表示在每月的 1 日的凌晨 2 点触发
- 0 15 10 * * MON-FRI * 表示在周一到周五每天上午 10:15 触发
- 0 0 10,14,16 * * * * 表示在每天上午 10 点,下午 2 点,下午 4 点触发
- 0 */30 9-17 * * * * 表示在每天上午 9 点到下午 5 点内每半小时触发
- 0 0 12 * * WED * 表示在每个星期三中午 12 点触发
# 执行效果
# 参考资料
- 定时触发器
- Cron 表达式介绍