一、创建机器人,并获取webhook
1.1 进入企业微信中,添加群机器人,添加完成后可以获取到一个webhook的地址
1.2 群机器人企业微信接口的调用可以参考这个文件
https://developer.work.weixin.qq.com/document/path/99110#%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E7%BE%A4%E6%9C%BA%E5%99%A8%E4%BA%BA
二、python请求接口发送消息
我尝试了两种类型的消息发送,都可以成功,代码如下
第一种:markdown类型消息
2.1 封装一下企业微信调用webhook接口
# webhook是创建机器人时获取的链接
webhook = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxx"
def request_send_qiye_weixin_message(data_content, headers=None):
"""
请求发送企业微信消息接口
"""
if headers is None:
headers = {"Content-Type": "application/json"}
ret = requests.post(url=webhook, json=data_content, headers=headers)
return ret.text
2.2 发送markdown类型的消息
# markdown类型,需要传的参数
data = {'msgtype': 'markdown', 'markdown': {
'content':
'测试机器人发送消息\n>'
'执行结果:<font color="#FF0000"> FAIL</font>\n'
'用例总数:<font color="comment"> 313</font>\n'
'通过数量:<font color="comment"> 312</font>\n'
'失败数量:<font color="comment"> 1</font>\n'
'错误数量:<font color="comment"> 0</font>\n'
'跳过数量:<font color="comment"> 0</font>\n'
'用例成功率:<font color="comment"> 99.68%</font>\n'
'执行时间:<font color="comment"> 3时13分33秒</font>\n'
}
}
# 调用第一步封装的request_send_qiye_weixin_message函数
send_result = request_send_qiye_weixin_message(data)
执行的结果如下:
第二种:发送文件消息
需要先上传文件获取到文件的media_id,后再请求发送消息的接口
def send_file_message(file_path):
"""
发送文件类型的消息
"""
# 上传文件, key为第一大步获取的webhook中的key,type固定传file
upload_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxx&type=file"
# 请求数据,是rb读取文件流,获取到media_id
data = {"file": open(file_path, "rb")}
res = requests.post(upload_url, files=data).json()
media_id = res.get('media_id')
# 发送文件类型报告消息
send_file_message_data = {
"msgtype": "file",
"file": {
"media_id": media_id
}
}
# 请求第1步中封装的request_send_qiye_weixin_message文件
send_result = request_send_qiye_weixin_message(send_file_message_data)
return send_result
if __name__ == '__main__':
# 调用发送文件函数
send_file_message("test.html")
执行结果如下图: