Python 如何实现企业微信机器人发送文本消息

文章导读
使用 Python 的 requests 库向企业微信提供的 Webhook 地址发送 POST 请求,是实现机器人发送文本消息最直接的方式,适合运维告警、业务通知等内部场景。
📋 目录
  1. A 核心代码示例
  2. B 实施步骤
  3. C 怎么验证是否生效
  4. D 常见错误码
  5. E 常见坑
  6. F 参考来源
A A

使用 Python 的 requests 库向企业微信提供的 Webhook 地址发送 POST 请求,是实现机器人发送文本消息最直接的方式,适合运维告警、业务通知等内部场景。

先说结论:不需要复杂 SDK,直接调 HTTP 接口即可,但要注意密钥管理和网络可达性。

  • 适合:内部系统监控、CI/CD 流程通知、定时任务状态汇报。
  • 先看:企业微信管理后台获取 Webhook 密钥,确认服务器能访问外网。
  • 建议:使用环境变量管理密钥,发送后检查返回码 errcode 是否为 0,增加重试机制。

核心代码示例

import os
import requests
import time

def send_wechat_msg(content, retry=3):
    key = os.environ.get('WECHAT_BOT_KEY')
    if not key:
        raise ValueError("未找到环境变量 WECHAT_BOT_KEY")
    url = f"https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key={key}"
    data = {"msgtype": "text", "text": {"content": content}}
    
    for i in range(retry):
        try:
            res = requests.post(url, json=data, timeout=5)
            res_json = res.json()
            if res_json.get('errcode') == 0:
                print("发送成功")
                return True
            else:
                print(f"发送失败:{res_json}")
        except Exception as e:
            print(f"请求异常:{e}")
        if i < retry - 1:
            time.sleep(1)
    return False

if __name__ == "__main__":
    send_wechat_msg("测试消息")

实施步骤

1. 在企业微信群聊中添加机器人,复制 Webhook 地址中的 key 参数。

2. 在 Python 环境中安装依赖:

Python 如何实现企业微信机器人发送文本消息
pip install requests

3. 配置环境变量(Linux/Mac):

export WECHAT_BOT_KEY="your_webhook_key"

4. 运行脚本,脚本会自动读取环境变量并发送消息。

怎么验证是否生效

运行脚本后,观察企业微信群聊是否收到消息。同时检查脚本打印的响应内容,官方文档规定 errcode 为 0 表示发送成功。如果收到 400 或 401 错误,通常意味着密钥错误或请求格式不对。

Python 如何实现企业微信机器人发送文本消息

常见错误码

  • 0:发送成功。
  • 400:请求参数错误,检查 JSON 格式或内容长度。
  • 401:密钥无效或过期,请重新获取 Webhook 地址。
  • 415:Content-Type 错误,确保使用 application/json。

常见坑

1. 密钥泄露:Webhook 密钥相当于密码,不要提交到 Git 仓库,务必使用环境变量或配置中心管理。

2. 内容限制:官方文档限制文本内容长度不超过 2048 字节,超长会被截断或发送失败。

Python 如何实现企业微信机器人发送文本消息

3. 频率限制:短时间内大量发送会触发限流,需做好重试机制。

4. 网络出口:部分内网服务器无法直接访问外网,需配置代理或白名单。

参考来源

企业微信官方文档 - 群机器人
URL: https://developer.work.weixin.qq.com/document/path/91770