影刀RPA 企业微信机器人消息推送进阶:图文卡片与文件上传
影刀RPA 企业微信机器人消息推送进阶:图文卡片与文件上传
作者:林焱
之前讲过钉钉群机器人推送,这篇聚焦企业微信。企业微信的群机器人接口比钉钉更丰富——支持文本、Markdown、图片、图文卡片、文件等多种消息类型。
获取Webhook地址
在企业微信群聊中,点击右上角"…" → “群机器人” → “添加机器人” → 复制Webhook地址。地址格式:
https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxx
注意:这个key就是你的"密码",有了它谁都可以往群里发消息。不要泄露,不要提交到Git仓库。
四种消息类型

拼多多店群自动化报活动上架!
1. 纯文本(最简单)
import requests
webhook = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx"
data = {
"msgtype": "text",
"text": {
"content": "监控告警:服务器CPU超过90%,请及时处理!",
"mentioned_list": ["@all"] # @所有人
}
}
requests.post(webhook, json=data)
2. Markdown(格式丰富)

data = {
"msgtype": "markdown",
"markdown": {
"content": """
## 每日数据报告
> 日期:2024-06-26
| 指标 | 数值 | 环比 |
|------|------|------|
| 新增用户 | <font color="info">1,234</font> | +12% |
| 活跃用户 | <font color="warning">8,901</font> | -3% |
| 订单量 | 567 | +5% |
[查看详细报表](https://example.com/report)
"""
}
}
requests.post(webhook, json=data)
企微的Markdown支持标题、引用、加粗、链接、表格和三种颜色(info蓝/warning橙/comment灰)。
3. 图文卡片(最常用)
data = {
"msgtype": "news",
"news": {
"articles": [
{
"title": "竞品降价预警!",
"description": f"竞品A价格从¥199降到¥149,降幅25%。建议关注。",
"url": "https://example.com/detail/123",

"picurl": "https://example.com/alert.png"
}
]
}
}
requests.post(webhook, json=data)
最多支持8条图文,每条需要标题、描述和URL(点击跳转的地址)。
4. 文件上传
企微的文件消息稍微麻烦——需要先上传文件获取media_id,再发送:
# 第一步:上传文件
upload_url = f"https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=xxx&type=file"
with open("销售周报.xlsx", "rb") as f:
resp = requests.post(upload_url, files={"media": f})
media_id = resp.json()["media_id"]
# 第二步:发送文件消息
data = {
"msgtype": "file",
"file": {"media_id": media_id}
}
requests.post(webhook, json=data)
实战:异常监控推送

import requests
def send_alert(title, detail, level="warning"):
"""影刀流程异常时的报警推送"""
colors = {"info": "info", "warning": "warning", "error": "comment"}
color = colors.get(level, "warning")
msg = f"""## <font color="{color}">⚠️ 流程异常</font>
> 时间:{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}
**异常详情:**
{title}
{detail}
请尽快处理!
"""
data = {"msgtype": "markdown", "markdown": {"content": msg}}
requests.post(webhook, json=data)
踩坑实录
坑1:频率限制
TEMU店群矩阵自动化运营核价报活动
每个机器人每分钟最多发20条消息。如果你的影刀流程在批量处理中频繁推送,很容易触发限制。解决方法:缓存多条消息,合并成一条发送;或者用多个机器人轮换。
坑2:Markdown不支持所有HTML标签
企微的Markdown是阉割版,<font>只能用三种颜色(info/warning/comment),不支持自定义颜色。<img>不支持。表格语法是支持的,但复杂的嵌套就不行了。
坑3:文件上传的type参数
上传文件时type参数必须是"file",但如果是图片(type="image"),返回的media_id直接用于image类型的消息而不是file类型。两者的消息格式不同。
坑4:图文链接的picurl必须外网可访问
内网图片链接发出去别人看不到。如果你需要配图,先用图床或对象存储上传到公网。或者不传picurl,只发文字+链接。
企业微信 vs 钉钉 vs 飞书
| 维度 | 企业微信 | 钉钉 | 飞书 |
|---|---|---|---|
| 免费文本消息 | ✅ | ✅ | ✅ |
| Markdown | ✅ 支持 | ✅ 支持 | ✅ 支持(更丰富) |
| 文件上传 | ✅ | ❌ | ✅ |
| 图文卡片 | ✅ 8条 | ✅ 1条 | ✅ 多卡片 |
| @人 | ✅ | ✅ | ✅ |
| 签名校验 | ❌ 无 | ✅ 有签名 | ✅ 有签名 |
企业微信的群机器人门槛最低(不需要签名校验),功能也最全。个人项目首选企业微信。

写在最后
消息推送是把RPA从"能跑"变成"好用"的关键一步。流程跑完了没人知道,等于白跑。配一个企微机器人,流程出结果了自动推送,异常了自动告警——这个闭环才叫真正的自动化。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)