影刀RPA完全指南:企业微信群机器人Webhook配置与错误通知自动推送
RPA流程在夜间自动跑,出了问题你不知道,等第二天早上发现数据全是空的。如果错误能第一时间推到企业微信群,就能及时处理。这篇讲企业微信群机器人Webhook的完整配置和错误通知封装方案。
企业微信群机器人创建与Webhook获取
企业微信群机器人不需要开发权限,任何群都能添加。Webhook URL就是推送消息的地址,影刀RPA通过HTTP请求调用这个地址发送消息。
Webhook URL是消息推送的钥匙,泄露了任何人都能往群里发消息,务必保管好。
操作步骤:
打开企业微信群,右上角点"…" → “群机器人” → “添加机器人”
机器人名称填"RPA通知助手",头像可以自定义
创建完成后,复制Webhook地址(格式为
https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx)把Webhook地址存入影刀RPA的"设置变量"指令,命名为
cfg_Webhook地址测试发送一条消息确认配置成功
# 影刀RPA"执行Python代码"指令中发送企业微信消息# Python图标要点亮importrequestsimportjsondefsend_wechat_text(webhook_url,content):"""发送文本消息到企业微信群"""data={"msgtype":"text","text":{"content":content}}try:response=requests.post(webhook_url,json=data,timeout=10,[video(video-JOnimzAm-1785172936717)(type-csdn)(url-https://live.csdn.net/v/embed/525000)(image-https://v-blog.csdnimg.cn/asset/23da3fe1f67a47106d725406cfde9a97/cover/Cover0.jpg)(title-拼多多店群自动化上架方案)]headers={"Content-Type":"application/json"})result=response.json()ifresult.get("errcode")==0:print("✅ 消息发送成功")returnTrueelse:print(f"❌ 发送失败:{result}")returnFalseexceptExceptionase:print(f"❌ 请求异常:{e}")returnFalse# 测试发送webhook="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=你的key"send_wechat_text(webhook,"【测试】影刀RPA通知系统已接入")这里很容易踩坑,注意看:企业微信群机器人每个群只能添加20个,消息频率限制每分钟20条。如果多个流程同时推送,建议用不同的群或不同的机器人分流。
错误通知封装与消息模板设计
推送消息不能只是一行报错文本,要包含足够的信息让你一眼判断问题严重程度和处理优先级。
消息模板设计对照
| 通知类型 | 模板内容 | 触发条件 |
|---|---|---|
| 流程启动 | 流程名+开始时间+预计采集量 | 流程开始执行 |
| 采集进度 | 已采集数量+成功率+当前模块 | 每10个商品采集完 |
| 错误通知 | 模块名+错误信息+截图路径+时间 | 异常处理Catch块触发 |
| 流程完成 | 总耗时+采集总量+失败数+报告路径 | 流程正常结束 |
| 限流警告 | 触发限流+暂停时间+预计恢复时间 | 检测到反爬限流 |
操作步骤:
- 在影刀RPA中创建子流程"发送通知"
- 输入参数:通知类型、流程名、模块名、消息内容、截图路径
- 子流程内用"执行Python代码"指令根据通知类型拼接消息
- 调用send_wechat_text函数发送
- 主流程在关键节点调用此子流程
# 影刀RPA中错误通知的完整封装importrequestsimportjsonfromdatetimeimportdatetimeclassWechatNotifier:"""企业微信通知封装类"""def__init__(self,webhook_url,flow_name):self.webhook_url=webhook_url self.flow_name=flow_namedefsend(self,content):"""发送文本消息"""data={"msgtype":"text","text":{"content":content}}try:requests.post(self.webhook_url,json=data,timeout=10)returnTrueexcept:returnFalsedefnotify_start(self,target_count):"""流程启动通知"""now=datetime.now().strftime("%Y-%m-%d %H:%M:%S")content=f"""【RPA流程启动】 流程:{self.flow_name}时间:{now}目标: 采集{target_count}个商品 状态: 开始执行"""self.send(content)defnotify_error(self,module_name,error_msg,screenshot_path=""):"""错误通知"""now=datetime.now().strftime("%Y-%m-%d %H:%M:%S")content=f"""【RPA异常通知】 流程:{self.flow_name}模块:{module_name}错误:{str(error_msg)[:200]}截图:{screenshot_path}时间:{now}状态: 需要人工检查"""self.send(content)defnotify_complete(self,duration,total,failed,report_path):"""流程完成通知"""now=datetime.now().strftime("%Y-%m-%d %H:%M:%S")success=total-failed success_rate=(success/total*100)iftotal>0else0content=f"""【RPA流程完成】 流程:{self.flow_name}耗时:{duration:.1f}秒 采集:{total}条 (成功{success}/失败{failed}) 成功率:{success_rate:.1f}% 报告:{report_path}时间:{now}状态: 正常结束"""self.send(content)defnotify_rate_limit(self,pause_minutes):"""限流通知"""now=datetime.now().strftime("%Y-%m-%d %H:%M:%S")content=f"""【RPA限流警告】 流程:{self.flow_name}触发: 检测到反爬限流 操作: 暂停{pause_minutes}分钟 时间:{now}状态: 自动恢复中"""self.send(content)# 影刀RPA中使用方式:# 1. 流程开头创建notifier对象(通过"执行Python代码"指令)# 2. 各模块调用对应的通知方法# 3. 流程参数传递notifier对象到子流程影刀RPA的子流程参数通过"流程参数输入输出"机制传递。在子流程编辑界面右侧面板的"输入参数"区域添加参数:in_通知类型(String)、in_流程名(String)、in_消息内容(String)。调用子流程时用"调用子流程"指令传入对应变量。
Markdown消息与富文本通知格式
企业微信群机器人支持Markdown格式的消息,比纯文本更好看,可以加粗、加颜色标识。
Markdown消息适合做运行报告,文本消息适合做简单通知。
操作步骤:
- 在send函数中把msgtype改为"markdown"
- content字段用Markdown语法编写
- 用
>做引用块,**做加粗,颜色用<font color="info">绿色</font>
# 影刀RPA中用Markdown格式发送运行报告defsend_wechat_markdown(webhook_url,flow_name,stats):"""发送Markdown格式的运行报告"""# 根据成功率选择颜色success_rate=stats["success"]/stats["total"]*100ifstats["total"]>0else0ifsuccess_rate>=95:status_color="info"# 绿色status_text="正常"elifsuccess_rate>=80:status_color="warning"# 橙色status_text="部分异常"else:status_color="comment"# 红色status_text="严重异常"markdown_content=f"""## 影刀RPA运行报告 > **流程名称**:{flow_name}> **执行时间**:{stats["start_time"]}~{stats["end_time"]}> **总耗时**:{stats["duration"]:.1f}秒 ### 采集统计 - 采集总量: **{stats["total"]}**条 - 成功: <font color="info">{stats["success"]}</font>条 - 失败: <font color="comment">{stats["failed"]}</font>条 - 成功率: <font color="{status_color}">{success_rate:.1f}%</font> ### 模块明细{chr(10).join(f"-{m['name']}:{m['count']}条 ({m['status']})"forminstats["modules"])}### 状态: <font color="{status_color}">{status_text}</font>"""data={"msgtype":"markdown","markdown":{"content":markdown_content}}try:response=requests.post(webhook_url,json=data,timeout=10)returnresponse.json().get("errcode")==0except:returnFalse# 消息效果(企业微信群中显示):# 影刀RPA运行报告(大标题)# 流程名称: 拼多多商品采集(引用块)# 执行时间: 2025-06-26 02:00 ~ 02:15# 采集总量: 320条# 成功: 315条(绿色)# 失败: 5条(红色)# 成功率: 98.4%(绿色)通知频率控制
TEMU店群如何管理运营?
| 控制策略 | 实现方式 | 说明 |
|---|---|---|
| 错误去重 | 相同错误5分钟内只通知一次 | 避免同一错误刷屏 |
| 进度合并 | 采集进度每10条通知一次而非每条 | 减少消息量 |
| 静默时段 | 错误通知不限时段,进度通知限制9:00-21:00 | 夜间只推送错误 |
| 级别过滤 | 只推送错误和完成通知,不推送进度 | 减少干扰 |
通知频率一定要控制,我早期每个商品采完都推送,一晚上群里几百条消息,重要错误反而被淹没。
影刀RPA定时任务配合通知系统,可以实现"夜间自动跑、早上看报告"的模式。创业版定时任务无限制,社区版也支持定时任务但受30分钟/天运行时长限制。建议把Webhook地址配置在流程开头的"设置变量"指令中,方便统一管理,更换群机器人时只改一处。
常见问题速查
Q:Webhook推送报"errcode 93000"怎么办?
A:这是URL无效错误。检查Webhook地址是否完整复制,key参数是否正确。重新在群机器人设置中复制Webhook地址。如果机器人被删除了需要重新创建。Q:消息内容太长被截断怎么办?
A:企业微信文本消息限制4096字节,Markdown限制4096字节。超长的运行报告拆分成多条消息发送,或者只发摘要,详细报告写入文件。Q:多个流程同时推送会冲突吗?
A:不会冲突,企业微信群机器人支持并发接收。但每分钟限制20条消息,超过会被限流。建议不同流程用不同的群机器人,或者加一个通知队列控制发送频率。Q:怎么在通知中@指定的人?
A:在文本消息中使用<@用户ID>格式。首先在企业微信管理后台获取用户的UserID,然后在消息内容中加入<@UserID>。Markdown消息不支持@功能,需要用文本消息。
推荐资源
- 企业微信官方文档 - 群机器人Webhook接口说明
- 影刀RPA社区搜索"企业微信通知",有完整的通知封装模板
- Python requests库文档:HTTP请求的参数和超时设置
#影刀RPA #RPA自动化 #飞书 #多任务调度 #异常处理
作者:林焱
本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。