Python 企业微信机器人 Webhook 发消息:群通知推送教程
Python 用 requests 调用企业微信群机器人 webhook,推送文本、Markdown、图片消息,实现日报、告警、定时提醒自动发到群里,附完整代码和常见错误排查。
场景痛点
脚本跑完想通知群里所有人,靠手动转发太慢;服务挂了想第一时间告警到群,靠人工盯屏不现实。企业微信群机器人 webhook 一个 URL 就能 POST 消息,Python 几行代码搞定,把日报、告警、进度提醒全自动化推送到群。
用到的库
pip install requests
完整代码
import requests
import json
# 把下面这串换成你自己群机器人的 webhook 地址
WEBHOOK = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
def send_text(content, mentioned_list=None):
"""发送文本消息,mentioned_list 里填 userid 或 @all"""
payload = {
"msgtype": "text",
"text": {
"content": content,
"mentioned_list": mentioned_list or [],
},
}
r = requests.post(WEBHOOK, json=payload, timeout=10)
print(r.json())
return r.json()
def send_markdown(title, content):
"""发送 Markdown 消息,支持加粗、链接、颜色"""
payload = {
"msgtype": "markdown",
"markdown": {
"content": f"## {title}\n{content}"
},
}
r = requests.post(WEBHOOK, json=payload, timeout=10)
print(r.json())
return r.json()
def main():
# 1. 普通文本,@全体
send_text(
"【日报】今日订单量 1234,环比上涨 5%,详情见附件。",
mentioned_list=["@all"],
)
# 2. Markdown 告警消息
send_markdown(
"服务告警",
'<font color="warning">订单服务响应超时</font>\n'
'> 错误率: <font color="red">8.2%</font>\n'
'> 时间: 2026-09-14 09:30\n'
'[查看监控面板](https://example.com/monitor)',
)
if __name__ == "__main__":
main()
代码讲解
- 先在企业微信群里"添加群机器人",复制出来的 webhook 地址里带
key=,整串填进WEBHOOK变量。 requests.post(url, json=payload)会自动把 dict 序列化成 JSON 并设置 Content-Type,比手写json.dumps省事。- 文本消息用
msgtype: text,Markdown 消息用msgtype: markdown,企业微信对 Markdown 支持有限,只认加粗、链接、<font color=...>这几种。 mentioned_list=["@all"]表示在群里 @ 所有人;填具体 userid 则 @ 指定人。
运行结果
运行脚本后,群机器人会立刻在目标群里发出两条消息:一条是带 @全体 的文本日报,另一条是红色告警的 Markdown 卡片。控制台会打印企业微信返回的 JSON,errcode: 0 表示成功。
注意事项
- 每个机器人每分钟最多 20 条消息,发太频会被限流;批量推送要 sleep。
- webhook 地址就是密钥,不要提交到公开 Git 仓库,建议读环境变量。
- 企业微信机器人不支持发送任意文件,文件要先上传到企业微信素材库拿 media_id。
- 网络不通或 key 写错会返回
errcode: 93000之类,对照官方文档查。 - 微信 webhook 走公网,公司内网服务器要确认能访问
qyapi.weixin.qq.com。

更新时间:2026-09-14 20:33:35
上一篇:Python画柱状图并添加数据标签:柱顶数值标注方法