基于Python企业微信的群机器人制作
基于Python的企业微信的群机器人制作
随着企业微信的普及,越来越多的公司、单位用上了企业微信,自从用了企业微信确实办(jia)公(ban)效(shi)率(jian)高(chang)。不得不说企业微信是一个好产品,比如今天要谈的群机器人
就可以帮我们完成一些重复繁琐的提醒工作。话不多说先来看一个使用场景吧!
应用场景:定时提醒打卡
大家都知道学习强国
是一个很棒的学习平台,上面的学习资源应有尽有,而且全部免费。我们每个人都应该好好学习,但有的时候忙起来难免会忘记打开APP。作为小组长自然应该不断地提醒组员,但提醒多了自己也觉得枯燥、惹人烦。这就非常适合用群机器人
来做这个事啦。
步骤1:群机器人配置
1.添加群机器人
2.群机器人工作原理
群机器人
可以简单的理解为一个“智能闹钟”,你可以定时定点地触发它,从而让它为你完成一些重复的群提醒工作。如何触发群机器人
为你工作呢?我们要先了解以下几个概念。
(1)Webhook地址
Webhook地址
可以理解为是每一个群机器人
的”网址”或”电话号码”,每个机器人的Webhook地址
都是唯一的,有了Webhook地址
,才能找到群机器人
,并触发群机器人
为你工作;成功添加群机器人
后,将鼠标移动到群机器人上,在弹出对话框中可以看到Webhook地址
信息。
(2)消息类型和数据格式
知道了群机器人
的“通讯地址”,要想触发群机器人
,还需要给机器人发送提醒的消息。根据官方文档说明发送的消息数据是json
格式。
{
"msgtype": "text",
"text": {
"content": "同志们,今天你学习强国了吗?",
"mentioned_list":["wangqing","@all"],
"mentioned_mobile_list":["13800001111","@all"]
}
}
参数说明:
参数 | 是否必填 | 说明 |
---|---|---|
msgtype | 是 | 消息类型,此时固定为text |
content | 是 | 文本内容,最长不超过2048个字节,必须是utf8编码 |
mentioned_list | 否 | userid的列表,提醒群中的指定成员(@某个成员),@all表示提醒所有人 |
mentioned_mobile_list | 否 | 手机号列表,提醒手机号对应的群成员(@某个成员),@all表示提醒所有人 |
步骤2:用Python触发群机器人
利用Python语言的requests
库,就可以轻松构造触发机器人发消息的网络请求。核心代码如下:
import requests
url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=" #这里就是群机器人的Webhook地址
headers = {"Content-Type":"application/json"} #http数据头,类型为json
data = {
"msgtype": "text",
"text": {
"content": "学习强国打卡啦", #让群机器人发送的消息内容。
"mentioned_list":["@all",], # @全体成员
}
}
r = requests.post(url,headers=headers,json=data) # 利用requests库发送post请求
运行Python脚本效果如下:
如果不会写代码,关注文末公众号字节杂谈二维码,回复”群机器人“,即可下载代码,更换Webhook地址
,按照步骤三上传腾讯云部署就可以愉快的使用啦。
步骤3:将触发程序部署到腾讯云函数
如果每次都是自己手动运行代码触发提醒也是比较累的,如何实现定时定点运行脚本,触发群机器人
呢?其实方法有很多,比如利用python加一个定时任务等,但是这样你自己的电脑要24小时运行着,显然不是最优方案。个人尝试下来,比较方便的做法是把脚本部署到腾讯云
的云函数
服务中,从此群提醒自动化。(注意:云函数的免费额度基本够用)
1.注册腾讯云账号,登录后添加云函数
(1)百度搜索“腾讯云”——点击进入官网——注册——登录——点击右上角控制台
,即可
(2)添加云函数服务
2.封装成main_handler
函数
由于腾讯云函数默认调用的函数名为“,我们需要将之前的核心python代码封装成该函数名的函数,保持文件名:index.py
import requests
def main_handler(event, context):
url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=" #这需要替换成你自己的Webhook地址
headers = {"Content-Type":"application/json"} #http数据头,类型为json
data = {
"msgtype": "text",
"text": {
"content": "今天你学习强国了吗?", #让群机器人发送的消息内容。
"mentioned_list":["@all",], # @全体成员
}
}
r = requests.post(url,headers=headers,json=data) # 利用requests库发送post请求
3.上传python文件
4.设置触发时间
单击函数名,可以修改云函数
的相关配置,
选择触发管理—创建触发器。
可以设置自定义触发周期
简单解释上图中Cron表达式0 0 9,12,16 * * * *
:
- 共有7位组成,用空格间隔,
-
*
表示所有值。在“日”字段中,* 表示每天。
写在最后
-
群机器人
的群发内容,可以自己建立一个List
或数据库表,随机读取更有意思; - 腾讯云云函数的每月免费额度完全够用,每月免费调用100万次哦;
- 如果不会写代码,关注下方公众号字节杂谈二维码,回复”群机器人“,即可下载代码,更换
Webhook地址
即可上传腾讯云部署啦。