Python 实现企业微信外部群机器人:轻量化消息推送方案

核心功能:群机器人 Webhook 开发(Python 版)


能力介绍

群机器人 Webhook 是企业微信为外部群提供的一种简单、高效的数据推送信道。Python 开发者只需利用基础的 HTTP 请求库,即可实现从本地或服务器向企微群实时发送通知。其核心价值在于极简集成:无需处理复杂的 OAuth2.0 认证,非常适合脚本告警、自动化报表推送等"单向通知"场景。

10 分钟接入 Demo

  1. 获取 Webhook :在企业微信群设置中,依次点击"群机器人" -> "添加机器人",保存生成的 Webhook URL。

  2. 安装依赖 :确保环境已安装 requests 库(pip install requests)。

  3. 封装数据 :按照官方 JSON 格式构造 Python 字典,包含 msgtype(文本、Markdown、图片等)。

  4. 执行推送 :使用 requests.post() 将数据发送至 Webhook 地址。

  5. 处理响应 :解析返回的 JSON,确认 errcode 是否为 0。

API 示例代码

以下是使用 Python 发送 Markdown 和 @特定成员 的标准代码片段:

python 复制代码
import requests
import json

def send_qiwe_robot_msg(webhook_url, content, mentioned_list=None):
    """
    通过 Webhook 发送机器人消息
    """
    headers = {"Content-Type": "application/json"}
    
    # 构造 Markdown 消息体
    payload = {
        "msgtype": "markdown",
        "markdown": {
            "content": content
        }
    }
    
    # 如果需要 @ 成员(注意:Markdown 模式下需在 content 中拼入 <@userid>)
    if mentioned_list:
        mention_str = "".join([f"<@={uid}>" for uid in mentioned_list])
        payload["markdown"]["content"] += f"\n\n提醒:{mention_str}"

    response = requests.post(webhook_url, data=json.dumps(payload), headers=headers)
    return response.json()

# 使用示例
WEBHOOK = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_KEY"
MSG = """# 自动化任务监控报告
> **任务名称**:数据备份
> **状态**:<font color="info">执行成功</font>
> **耗时**:45s
"""

# res = send_qiwe_robot_msg(WEBHOOK, MSG, mentioned_list=["ZhongGong"])
# print(res)

使用场景说明

  • 运维监控告警:当 Python 监控脚本发现服务器磁盘空间不足或接口超时,第一时间触发群通知。

  • 数据分析日报 :利用 pandas 处理完业务数据后,将核心指标格式化为 Markdown 表格推送到管理群。

  • 开发流自动化:在 CI/CD 流程中,当脚本部署完成或测试失败时,自动在开发群同步结果。

FAQ

  • Q:为什么发送的消息中 @ 成员没有变色提醒?

    • A:在 Markdown 消息中,必须使用 <@userid> 格式(如果需要 @ 所有人,则使用 <@all>)。
  • Q:机器人可以发送本地文件吗?

    • A:可以。但需要先调用"上传临时素材"接口获取 media_id,再通过机器人发送 file 类型消息。
  • Q:接口调用报错 40037 (invalid key)?

    • A:请检查 Webhook URL 后的 key 参数是否完整,或者该机器人是否已被管理员移除。

引导入口

相关推荐
天空属于哈夫克33 天前
企业微信二次开发:精准实现关键词自动回复
架构·企业微信
默_笙3 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
qq_426003963 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技3 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
风合星语3 天前
2026 具身智能技术实战(一):VLA 到底怎么控制机器人?——用 LeRobot 跑通 SmolVLA 推理
pytorch·机器人·具身智能·vla·lerobot·smolvla
鲁邦通物联网3 天前
图书馆机器人跨楼层运行,机器人梯控低噪设计与架构分析
机器人·巡检机器人·机器人梯控·agv梯控·非侵入式采集·机器人乘梯·机器人自主乘梯
伞伞悦读3 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
只睡四小时3 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
奇思妙想聪明勤奋的小羊3 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型