背景
在开发时出现一些需要实时监控的任务,类似服务器挂了,执行脚本未按时执行,报错日志展示等。需要及时通知,以免造成重大损失。
配置企业微信群机器人
企业微信有对外开放的api 接口,只要配置相关参数即可使用
步骤1:创建企业微信机器人的webhook地址
1:打开企业微信——点击群聊标志
2:进去聊天信息界面之后,点击"群机器人"
3:进去之后,可以看到机器人支持Webhook协议,配置好之后,可以将业务信息推送到群里
4:输入机器人名字,点击添加
5:点击完成,就成功添加机器人,添加机器人之后,生成一个Webhook地址,需要配置Webhook,配置好之后,可以推送业务信息
步骤2:配置群机器人参数
参考企业微信提供的api接口文档(https://work.weixin.qq.com/api/doc/90000/90136/91770)
我配置时只用到了text(文本类型),其他类型参考接口文档
{
"msgtype": "text",
"text": {
"content": "展示内容",
"mentioned_list":["指定@人名","@all"],
"mentioned_mobile_list":["指定人手机号","@all"]
}
}
参数 | 是否必填 | 说明 |
msgtype | 是 | 消息类型,此时固定为text |
content | 是 | 文本内容,最长不超过2048个字节,必须是utf8编码 |
mentioned_list | 否 | userid的列表,提醒群中的指定成员(@某个成员),@all表示提醒所有人,如果开发者获取不到userid,可以使用mentioned_mobile_list |
mentioned_mobile_list | 否 | 手机号列表,提醒手机号对应的群成员(@某个成员),@all表示提醒所有人 |
举例
def send_to_qy_wechat(userid=None, alert_message):
# 企业微信发送报警信息配置
# url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN'
try:
webhook_header = {
"Content-Type": "application/json",
}
webhook_url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXXXXXXXXXXXXXXXXXXXXXXX'
webhook_message = {
"msgtype": "text",
"text": {
"content": alert_message,
"mentioned_list": [userid]
},
}
requests.post(url=webhook_url, headers=webhook_header, json=webhook_message)
except:
traceback.print_exc()
send_to_qy_wechat('@XXXXX', '放展示内容')