基于Python的企业微信的群机器人制作

随着企业微信的普及,越来越多的公司、单位用上了企业微信,自从用了企业微信确实办(jia)公(ban)效(shi)率(jian)高(chang)。不得不说企业微信是一个好产品,比如今天要谈的群机器人就可以帮我们完成一些重复繁琐的提醒工作。话不多说先来看一个使用场景吧!

应用场景:定时提醒打卡

大家都知道学习强国是一个很棒的学习平台,上面的学习资源应有尽有,而且全部免费。我们每个人都应该好好学习,但有的时候忙起来难免会忘记打开APP。作为小组长自然应该不断地提醒组员,但提醒多了自己也觉得枯燥、惹人烦。这就非常适合用群机器人来做这个事啦。

群机器人提醒打卡

步骤1:群机器人配置

1.添加群机器人

添加群机器人

2.群机器人工作原理

群机器人可以简单的理解为一个“智能闹钟”,你可以定时定点地触发它,从而让它为你完成一些重复的群提醒工作。如何触发群机器人为你工作呢?我们要先了解以下几个概念。

(1)Webhook地址

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脚本效果如下:

利用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文件

(1)新建云函数

(2)上传Python文件包

4.设置触发时间

单击函数名,可以修改云函数的相关配置,

(1)修改云函数设置

选择触发管理—创建触发器。

(2)创建触发器

可以设置自定义触发周期

(3)设置自定义触发周期

简单解释上图中Cron表达式0 0 9,12,16 * * * *

  • 共有7位组成,用空格间隔,
  • *表示所有值。在“日”字段中,* 表示每天。

0 0 9,12,16 * * * *的解释

写在最后

  • 群机器人的群发内容,可以自己建立一个List或数据库表,随机读取更有意思;
  • 腾讯云云函数的每月免费额度完全够用,每月免费调用100万次哦;
  • 如果不会写代码,关注下方公众号字节杂谈二维码,回复”群机器人“,即可下载代码,更换Webhook地址即可上传腾讯云部署啦。

关注字节杂谈公众号获取更多信息哦

版权声明:本文为wansq原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/wansq/p/14684686.html