我的知识记录

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

Python 企业微信机器人 Webhook 发消息:群通知推送教程

标签:

更新时间:2026-09-14 20:33:35

上一篇:Python画柱状图并添加数据标签:柱顶数值标注方法

下一篇:Python 系统通知弹窗提醒:plyer 跨平台 Toast 通知