Bot Messenger 多平台群机器人
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_b22a52ba/bot-messenger。
技能介绍
多平台群消息推送的痛点
钉钉、飞书和企业微信作为主流协作平台,各自拥有独立的群机器人接口。开发者常需面对三个核心问题:一是平台间Webhook配置差异大,从访问地址格式(如钉钉的https://oapi.dingtalk.com/robot/send?access_token=xxxxxx、企业微信的https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxx)到安全校验机制(钉钉的加签、飞书的签名校验、企业微信的加签)各不相同;二是消息类型支持不统一,例如飞书自定义机器人不支持@成员,而钉钉和企业微信支持;三是频率与内容限制分散,如钉钉每分钟20条、飞书60条,企业微信Markdown不超过4096字节等。这些差异导致跨平台推送时需编写多套适配代码,维护成本高。
Bot Messenger 的工作逻辑
该技能通过抽象平台差异,提供统一的推送接口。核心能力包括:
- 多平台适配:自动处理钉钉、飞书、企业微信的Webhook格式转换与签名算法(如钉钉使用HMAC-SHA256,飞书使用HMAC-SHA256但需注意
string_to_sign的构造差异)。 - 消息类型支持:覆盖文本、Markdown、卡片消息(如钉钉的ActionCard、企业微信的news/image/file)等类型,并根据平台限制自动调整内容长度。
- 安全校验:强制推荐加签或IP白名单保护,避免Webhook泄露导致的滥用。
- @成员功能:除飞书外,支持通过手机号或userId@指定成员,满足精准通知需求。
执行流程分为三步:首先通过ask_user_question确认平台、Webhook地址、密钥、消息类型等配置;其次支持将配置保存至bot_config.json以便复用;最后使用Python requests库构造请求,根据平台差异处理签名并发送消息。
适用边界与注意事项
- 平台特性差异:飞书自定义机器人不支持@成员,需通过其他方式实现精准通知;钉钉和企业微信的@功能需提供手机号或userId。
- 频率与内容限制:钉钉每分钟20条、飞书60条、企业微信20条;内容长度需遵守各平台规则(如企业微信Markdown不超过4096字节)。
- 安全配置:Webhook地址和密钥属于敏感信息,建议通过环境变量或配置文件管理,避免硬编码或存入用户记忆。
- 错误处理:需关注平台特定的错误码(如飞书
code=19021签名失败),根据文档调整配置。
使用场景
- 负责运维告警的同学在服务器异常时,需要把监控事件按钉钉/飞书/企业微信机器人推送到值班群。
- 数据分析同学每天生成报表后,要把 Markdown 结论发到团队群,并@相关人确认。
- 项目协调同学在里程碑完成时,需要给不同部门群分别发送卡片消息提醒。
- 使用自动化脚本的同学希望定时把任务结果通过 webhook 发送到群,避免手动复制。
适合人员
- 后端/运维工程师:需要在系统告警或定时任务完成后,把关键信息通过群机器人发送到值班群。
- 数据分析/报表同学:生成日报、周报或数据结论后,要把 Markdown 内容推送到团队群并提醒查看。
- 项目管理/协同同学:里程碑完成或会议提醒时,需要向钉钉/飞书/企业微信不同群发送通知,并@相关成员。
- 自动化脚本开发者:希望用统一方式向多个协作平台群发送任务结果或通知,减少重复适配。