去年一个大促夜,库存同步出了bug,有订单卖了负库存的商品。如果我没在凌晨2点收到企业微信告警,第二天就是一场灾难。这套告警系统,就是用影刀RPA + 企业微信机器人搭的。
今天从零拆给你看。
一、企业微信机器人的两条路
很多新人一上来就问我:“影刀有企业微信的指令吗?”答案是没有封装好的现成指令——飞书有“飞书群通知”,企业微信没有。
但企业微信机器人走的是两条不同的路,先搞清楚你走哪条:
| 形态 | 获取方式 | 能力 | 配置难度 | 适用场景 |
|------|---------|------|---------|---------|
| 群机器人(Webhook) | 群设置中添加 | 只发消息到该群 | ⭐ 简单 | 内部群快速通知,推荐首选 |
| 自建应用(API) | 企业微信管理后台创建 | 发消息到群/个人、收发双向 | ⭐⭐⭐ 复杂 | 需要交互或定向推送个人 |
Webhook方式简单,3分钟配好,内部群专用。自建应用方式复杂,需要企业管理员权限、创建应用、拿CorpId/AgentId/Secret,适合双向交互场景。
这篇文章重点讲群机器人Webhook方式——最快、最稳、最省事。
二、准备工作:3分钟添加群机器人
第一步:打开企业微信群
必须是企业内部群(外部客户群暂不支持添加群机器人)。点击右上角“...” → “添加群机器人” → “新建机器人”。
第二步:复制Webhook地址
机器人创建成功后,会生成一个Webhook地址,格式类似:
https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

这个地址不要泄露——谁拿到都能往群里发消息。
第三步:安全设置(强烈推荐)
在机器人配置页面可以设置:
- 自定义关键词:消息中必须包含至少一个关键词才能发送(如“RPA”“告警”)
- IP地址限制:只允许特定IP发消息
建议至少配一个自定义关键词,防止误发或被盗用。
三、影刀核心指令:用“发送HTTP请求”发消息
影刀里没有封装好的“企业微信群通知”指令,需要用“发送HTTP请求”指令自己发。
操作步骤
1. 拖入“发送HTTP请求”指令
右侧指令面板 → “网络”分类 → “发送HTTP请求”。
2. 配置请求参数
| 参数 | 设置 |
|---|---|
| 请求URL | 粘贴Webhook地址 |
| 请求方法 | POST |
| 请求头 | Content-Type: application/json |
| 请求体类型 | JSON |
| 请求体 | 按企业微信消息格式填写 |
四、四种消息类型(直接复制能用)
类型一:文本消息(最常用)
{
"msgtype": "text",
"text": {
"content": "【采集完成】今日共采集商品1,234条,耗时15分钟。"
}
}

在影刀里把content的值换成变量:
"content": "【采集完成】今日共采集商品" + ${采集总数} + "条,耗时" + ${总耗时} + "分钟。"
类型二:Markdown消息(带格式,推荐)
企业微信支持Markdown格式——加粗、换行、引用、标题。
{
"msgtype": "markdown",
"markdown": {
"content": "## 📊 采集任务完成报告\n\n> 采集总数:**1234**条\n> 错误次数:**0**次\n> 总耗时:**15**分钟\n\n[点击查看详细数据](https://xxx.com)"
}

}
支持的语法:# ## ### 标题 | **加粗** | > 引用 | [链接文字](URL) | `代码`
类型三:图片消息
图片需要先上传获取media_id,再发图片消息。
{
"msgtype": "image",
"image": {
"media_id": "返回的media_id"
}
}
上传接口:
POST https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=WEBHOOK_KEY&type=image
限制:图片大小不超过2M,支持JPG、PNG格式。
类型四:图文消息(带链接卡片)
{
"msgtype": "news",
"news": {
"articles": [
{
"title": "今日数据报告",
"description": "采集完成,共1234条",
"url": "https://xxx.com/report",
"picurl": "https://xxx.com/cover.png"
}
]
}
}
五、@指定人或@所有人(最容易踩的坑)
企业微信机器人的@方式和飞书不一样——用的是<@userid>标签。
@所有人
在文本内容的最前面加上<@all>:
{
"msgtype": "text",
"text": {
"content": "<@all>\n【紧急告警】采集流程出现异常,请及时处理!"
}
}
@指定人
需要先获取被@人的userid(企业微信内部ID,不是手机号)。
获取userid的方法:
- 登录企业微信管理后台 → “通讯录” → 点击成员
- 在成员详情页可以看到“账号”(即userid)
@指定人的写法:
{
"msgtype": "text",
"text": {
"content": "<@zhangsan> <@lisi>\n采集任务已完成,请两位运营同学确认数据。"
}
}
⚠️ 关键坑点
Markdown消息不支持@all,只支持在content中使用<@userid>扩展语法来@群成员。
简单说:
- 文本消息:支持
<@all>和<@userid> - Markdown消息:只支持
<@userid>,不支持<@all>
六、异常告警封装(完整实战)
把企业微信通知封装成一个子流程,每次出错或完成时调用。
子流程设计:E01_SendWeChatAlert
输入参数:
消息标题(文本)消息内容(文本)是否紧急(布尔值,True则@所有人)错误截图路径(文本,可选)
内部逻辑:
Try:
# 组装消息内容
如果 是否紧急 == True:
最终内容 = "<@all>\n【" + 消息标题 + "】\n" + 消息内容
否则:
最终内容 = "【" + 消息标题 + "】\n" + 消息内容
# 判断用文本还是Markdown
如果 消息内容包含"#"或"**":
消息类型 = "markdown"
否则:
消息类型 = "text"
# 构造请求体
请求体 = {
"msgtype": 消息类型,
消息类型: {
"content": 最终内容
}
}
# 发送HTTP请求
发送HTTP请求(
URL=全局变量{企业微信Webhook},
方法="POST",
请求头={"Content-Type": "application/json"},
请求体=JSON转文本(请求体)
)
# 如果有错误截图,再发一条图片消息
如果 错误截图路径 != "":
发送图片消息(错误截图路径)
发送状态 = True
Catch:
输出日志("企业微信通知发送失败:" + %Error%)
发送状态 = False
Try结束
在主流程中调用
Try:
采集商品数据
Catch:
# 截图保存
截图保存("C:\error_screenshots\error_" + 时间 + ".png")
# 发送告警通知
调用子流程 E01_SendWeChatAlert(
消息标题="⚠️ 采集流程异常",
消息内容="错误信息:" + %Error% + "\n请及时处理!",
是否紧急=True,
错误截图路径="C:\error_screenshots\error_" + 时间 + ".png"
)
Try结束
七、Token缓存优化(进阶必看)
如果用自建应用API方式发送消息,流程是:先拿access_token,再用access_token发消息。
access_token有效期7200秒(2小时)。
关键优化:不要把每次发消息都去拿一次token,太慢而且有频率限制。正确做法:把token缓存到影刀变量里,快过期时再刷新。
【获取Token】
→ 检查 全局变量.token 是否为空或已过期
→ 如果有效:直接使用
→ 如果失效:重新获取 → 更新全局变量
【发送消息】
→ 使用 全局变量.token 发送
常见问题/易错速查
-
消息发不出去,返回“invalid webhook” → 检查Webhook地址是否完整复制,有没有多余空格或换行。
-
@人不生效,显示纯文本 → 检查格式是否是
<@userid>(不是@姓名)。userid是企业微信内部ID,不是手机号。 -
Markdown消息部分格式不生效 → 企业微信的Markdown支持有限,不支持表格、图片嵌入、HTML标签。
-
消息被企业微信拦截 → 检查机器人是否设置了“自定义关键词”,消息内容必须包含至少一个关键词才能发送。
-
图片消息发不出去 → 检查图片大小是否超过2M,格式是否为JPG或PNG。
-
外部客户群能加群机器人吗 → 不能。必须是企业内部群。
-
Secret写到了流程里怎么办 → 企业微信的Secret比Webhook更敏感。正确做法:存到影刀控制台的“应用参数”里,运行时动态读取。
-
社区版能用企业微信通知吗 → 可以。“发送HTTP请求”指令社区版和创业版都支持,不消耗运行时长。
推荐资源
- 企业微信群机器人配置文档:
https://developer.work.weixin.qq.com/document/path/91770 - 企业微信开发者文档:
https://developer.work.weixin.qq.com/ - 影刀官方帮助中心搜索“发送HTTP请求”
- 影刀开发者社区搜“企业微信”有大量踩坑记录
#影刀RPA #RPA自动化 #企业微信联动 #消息通知 #异常告警 #电商自动化
作者:林焱
本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。
