用企业微信作为公司办公软件的公司有需要如果需要监控或者定时提醒业务就可以使用企业微信自带的机器人工具作为消息的发起者!
添加机器
创建一个至少3个人的群聊。如果只是为了加机器人可以先拉人进群随后将其他人剔除即可,这个设计还是有点鸡肋啊,如果我就想给自己通知消息暂时都采取这种方式。
添加完群聊就可以在群设置里面添加机器人,设置完成后即可看到机器人,如果想让机器人发消息,只需要post请求机器人的webhook地址。
发送消息
也可以打开机器人里面也有相关demo实例。以下就是一个最简单的企业微信机器人webhook操作代码:
import requests
import json
def wx_warning(text):
webhook = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxx" # webhook地址
header = {
'Content-Type': "application/json"
}
body = {
"msgtype": "markdown",
"markdown": {
"content": text
}
}
resp = requests.post(webhook, headers=header, data=json.dumps(body))
发送文件格式
如果想让机器人发送文件格式数据给你,就需要先把数据上传到企业微信后台并获取返回的媒体id,最后再post请求基于媒体id拼接的url即可实现我们的需求!测试源码如下:
import requests
import datetime
import os
import json
today=datetime.datetime.now().strftime("%Y-%m-%d")
logfile="test.txt"
filename="test_001.txt"
if os.path.isfile(logfile):
url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=xxxx&type=file" ## xxxx为机器人的key
payload={'Content-Disposition': 'form-data','name': 'media','filename': 'wework.txt'}
files=[('boundary', ('%s' % filename, open('%s' % logfile, 'rb'), 'application/octet-stream'))]
headers = {}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
mediaid = response.json()['media_id']
url2 = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxx"
headers2 = {'Content-Type': 'application/json'}
payload2 = {"msgtype": "file","file": { "media_id": "%s" % mediaid}}
requests.request("POST", url2, headers=headers2, data=json.dumps(payload2))
这功能很简单又挺实用,有在用企业微信的老铁们如果平时有需要监控一些自己的程序异常情况或其他数据的实时通知还是蛮好用的!
更多操作可以查阅企业微信开发者文档