Webhook 跨平台通知
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_15292d5a/yjkj-webhook-notify。
技能介绍
问题背景
运维脚本、CI 流水线或 Agent 跑完一步后,往往要把结果推到钉钉、企业微信或飞书群。各平台的 webhook URL 形态不同,消息体字段也不一致:有的要 msgtype + markdown,有的要 @ 手机号或 @all,还有关键字、IP 白名单等坑。自己在每个脚本里拼 JSON,很快会变成复制粘贴地狱。
技能如何工作
webhook-notify 是一套 PowerShell 函数库(如 Send-Webhook、Send-Webhook-Batch、Send-Webhook-Template),用 单一入口 发消息:传入 Url 和 Message,由 Get-WebhookPlatform 自动识别 钉钉、企业微信、飞书、Slack、Discord、Telegram 等 URL,再按平台组装请求。
常用能力包括:
- 重试:默认 3 次,指数退避(2 / 4 / 8 秒),可通过
Retry、Timeout调整 - 批量:
Send-Webhook-Batch对多个 URL 发同一内容 - 模板:
Send-Webhook-Template内置system-alert、deploy-success、deploy-failed、es-alert等场景 - 连通性:
Test-Webhook-Connection在接入前验证 URL 是否可用
对国内 IM,还支持 IsAtAll、AtMobiles 等 @ 相关参数(Slack / Discord / Telegram 侧文档标明无 @ 能力)。
适用边界与注意点
- 实现语言是 PowerShell,更适合 Windows 自动化、OpenClaw 技能环境,或已用
.ps1的流水线;不是 HTTP 微服务,也不是通用 Node/Python SDK。 - 钉钉常见报错 关键字缺失、IP 白名单:需在机器人后台改配置,或在消息里带上机器人要求的关键字(文档示例含
【openclaw】)。 - 模板名和参数需与内置列表一致;深度定制可走文档中的「自定义模板」思路,但核心仍是围绕 webhook 文本/Markdown 类通知,而非富交互卡片的全平台统一抽象。
使用场景
- CI 部署脚本结束后,用同一套 `Send-Webhook` 把成功或失败结果推到钉钉或企业微信机器人
- 夜间巡检脚本发现 ES 异常时,调用 `es-alert` 模板向飞书群发送结构化告警
- 维护多张群机器人 URL 时,用 `Send-Webhook-Batch` 一次广播同一条发布说明
- 新接入机器人 URL 后,先跑 `Test-Webhook-Connection` 确认网络与白名单配置无误
适合人员
- 在 Windows 或 OpenClaw 环境里用 PowerShell 写发布与巡检脚本、需要统一对接多家 IM webhook 的运维工程师
- 负责 Jenkins/Azure DevOps 流水线、希望在失败阶段自动 @ 相关同事手机号的发布负责人
- 用 Agent 或定时任务跑完批处理后、要把摘要推到 Slack 或 Discord 频道的小团队 SRE
- 刚配置钉钉自定义机器人、经常被关键字或 IP 白名单报错、需要按文档排查的值班同学