ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

影刀RPA实操指南:钉钉企微飞书三端通知统一封装方案

影刀RPA实操指南:钉钉企微飞书三端通知统一封装方案 影刀RPA实操指南钉钉/企微/飞书三端通知统一封装方案一个流程要同时给钉钉群、企业微信群、飞书群发通知三套指令三套参数三套格式每个流程里写一遍改个样式要改十几处——这是流程多了之后必然会遇到的通知管理难题。影刀RPA自带「钉钉群通知」「企业微信群通知」「飞书群通知」三条指令把它们的差异吃透之后封装成一个统一通知子流程所有流程调用同一个入口这事就一劳永逸了。我管理着十来个采集流程早期每个流程里各写各的通知有一次换钉钉机器人的webhook改了三个晚上。这篇实操指南把三端差异对照、统一封装的设计、踩过的坑一次讲完照着做你能得到一个可复用的通知模块。先说设计目标调用者只传发到哪个端、标题、正文、谁四个参数端与端之间的格式差异全部在子流程内部消化。三端指令差异对照参数和格式的真实区别先把三条指令的参数摆在一起看差异比想象的大对比项钉钉群通知企业微信群通知飞书群通知鉴权webhookSEC密钥仅webhookwebhook签名校验密钥文本格式支持支持支持markdown支持可填消息标题支持不支持用富文本替代卡片无无消息卡片图片不支持支持支持需App ID和Secret人方式填手机号文本里拼标签文本里拼at标签三个关键差异展开说钉钉的密钥是机器人安全设置里加签一栏SEC开头的字符串开了加签就必须填否则发送直接失败钉钉的人是「某人」参数里填手机号码支持多个手机号和所有人这是三端里最省事的飞书的消息格式类型里没有markdown要用富文本或消息卡片人写法是at标签所有人固定写all变量与JSON设计统一的消息数据结构封装的核心是定义一个所有端通用的消息结构。我用字典承载调用时构造好传进子流程。# 输入无# 输出msg统一消息结构传给通知子流程# 渠道 channeldingtalk / wecom / feishu可多选传列表msg{channel:[dingtalk,feishu],# 要发往的端title:采集任务日报,# 标题钉钉markdown和飞书卡片用body:今日采集 1200 条失败 3 条,# 正文at_mobiles:[13800000000],# 钉钉的手机号列表at_all:False# 是否所有人}Python的字典和列表操作在这里够用拼接正文时数字转字符串别偷懒报Array to String这类类型错误多半是这里混了类型。飞书at标签里的引号嵌套建议用单引号包外层、双引号留内层转义写错发出去的就是一段乱码。流程控制子流程内部的分支路由统一通知子流程 fy_统一通知 的内部逻辑是一个条件分支路由判断 msg.channel 里包含哪些端包含钉钉→调用「钉钉群通知」消息格式选markdown标题填msg.title某人参数填msg.at_mobiles包含企微→调用「企业微信群通知」消息格式选markdown包含飞书→调用「飞书群通知」消息格式选富文本或消息卡片at标签拼进正文每个分支外面套Try-Catch某端失败只「输出日志」记录不阻断其他端的发送某端挂了不影响其他端这条很重要。我有次飞书机器人被移出群钉钉和企微的通知照常发出定位问题时日志里只有飞书分支的报错一分钟就找到了。元素定位与网页自动化通知内容的来源通知内容大多来自采集流程的运行数据这部分依赖网页自动化基本功。列表数据用「获取相似元素列表」批量提取异常提示用XPath文本模糊匹配抓报错文案。# 捕获元素页面上的失败提示作为通知正文的报错详情 //*[contains(text(),失败) or contains(text(),错误)] # 捕获元素数据加载完成标志作为发通知前置条件 //div[classsummary-bar]等待策略统一用「等待元素出现」加超时弹窗先判断再处理。这些采集到的信息先写进运行统计字典流程收尾时统一交给通知子流程业务逻辑和通知逻辑彻底分离。数据处理与鼠标键盘图像发通知前的最后一层加工统计加工把采集数、成功数、失败数、耗时用Python拼成摘要段落三端共用同一段文字截图投递企微和飞书支持图片类型异常时把「截图」指令的产物发出去钉钉端不支持图片通知就用文字描述替代图像兜底通知环节本身用不到鼠标键盘和图像识别采集端元素彻底定位不到时才启用图像点击边界要划清楚数据量大时摘要别把全量明细塞进去通知是给人扫一眼的明细放多维表格通知里带一句详情见表格即可。进阶技能HTTP请求直发webhook的替代方案三条群通知指令之外「HTTP请求」指令可以按POST方式直接向三端webhook发消息体遇到指令不支持的消息类型比如钉钉的特殊卡片时这是唯一的出路。做法是请求方式选POST消息体按各端官方的JSON格式拼好发送返回码200即成功。方案优点缺点群通知指令参数化不易出错受指令支持格式限制HTTP请求直发格式完全自由JSON自己拼易写错我的原则指令能覆盖的场景用指令覆盖不了才上HTTP请求代码里注释写清楚用的哪种方式后人接手不困惑。平台实战与系统联动通知体系的三层设计跑久了我总结出三层通知体系第一层即时告警异常时值班人走钉钉第二层日常播报任务完成发汇总走企微第三层数据沉淀结果写入飞书多维表格配合定时任务每晚跑一轮。三端各司其职谁也不是摆设。定时任务配置在影刀客户端的计划任务里错峰设置运行时间避免多流程抢机器夜间任务记得关电脑睡眠。高级任务计划还能用Webhook触发流程通知和触发形成闭环。工程化规范与调试封装的纪律子流程只暴露四个输入参数webhook和密钥全部存在子流程内部换机器人只改一处命名规范fy_统一通知版本号写在流程说明里调试右键加断点单步执行变量面板里逐层看字典内容三个分支各跑一遍再上线版本选择社区版每天30分钟不够跑带通知的长流程创业版无限制统一封装最大的收益不是省代码是收敛所有通知长一个样、走一个口子排查问题永远只看一个地方。易错速查表报错/现象原因解决方法钉钉发送报签名错误开了加签但没填SEC密钥补填密钥或机器人改用自定义关键词企微消息没发出去webhook失效或频率超限重新生成webhook控制发送频率飞书at标签显示成文字标签格式或user_id写错核对at语法open_id要准确三端只有一端收到分支路由判断漏了端检查channel列表和条件分支正文乱码或断行JSON转义处理出错拼接后先打印检查再发送改样式要改很多流程通知逻辑散落在各流程全部收敛到统一通知子流程学习资源与延伸阅读三条群通知指令的官方参数说明都不长建议直接通读各端机器人的申请流程官方帮助里也有图文。统一通知子流程的完整源码我放在代码仓库 home.linyan.cloud可以直接参考改造把你的三端webhook填进去当天就能用。#影刀RPA #RPA自动化 #钉钉 #企业微信 #飞书 #消息通知作者林焱
返回列表