Dingding

📢 群机器人 CLI · 零依赖秒发通知

钉钉群机器人零依赖 CLI 工具,支持加签安全模式与@提醒,快速接入 CI/CD 监控告警等自动化通知场景,附带开放平台 API 开发速查。

收藏
2.6k
安装
1.2k
版本
2.0.0
CLS 安全性认证2026-08-04
点击查看完整报告 >

使用说明

核心用法

钉钉 Skill 提供零依赖 Python CLI 脚本(scripts/dingbot.py),基于官方 Webhook 协议实现群机器人消息推送。核心能力覆盖三类消息格式:

  • text:纯文本消息,支持 @指定手机号成员 或 @all 全员提醒
  • markdown:结构化富文本(标题显示在会话列表),支持从本地文件读取内容
  • link:链接卡片,带跳转 URL 和可选封面图

安全认证采用官方推荐的加签模式(HMAC-SHA256 + Base64 + URL 编码),脚本内置完整签名逻辑,避免手动拼接常见错误。

典型自动化场景

| 场景 | 命令示例 |
|------|---------|
| CI/CD 结果通知 | `python3 dingbot.py text "部署完成 ✅" @all` |
| 监控告警 | `python3 dingbot.py markdown "🚨 P0 告警" alert.md` |
| 定时日报 | `python3 dingbot.py markdown "日报" report.md` |

---

显著优点

1. 零依赖部署:仅 Python 3 标准库,无需安装 requests 等第三方包,容器/裸机/CI 环境即拷即用
2. 安全模式完整:内置加签算法(最易出错的环节),同时支持关键词/IP 白名单模式说明

3. 高频痛点覆盖:聚焦 agent 自动化最高频需求——群通知,而非过度扩展

4. 实测错误码手册:整理 300005(token 失效)、310000(安全校验失败)、130101(限流 20 条/分钟)等实战踩坑记录

5. 开放平台速查:附录 access_token 获取、新旧域名差异、常用服务端 API 指引,兼顾进阶开发

---

潜在缺点与局限性

| 局限 | 说明 |
|------|------|
| 消息类型受限 | 不支持钉钉 Stream 模式、AI 助理(钉钉 AI PaaS)等新能力;markdown 子集不支持表格 |
| 无个人号能力 | 明确排除个人号协议逆向,仅限官方开放的群机器人 Webhook |
| 限流约束 | 单机器人 20 条/分钟硬限制,大规模告警需分机器人或降级策略 |
| 无图形界面 | 纯 CLI 工具,非技术人员需配合文档使用 |

---

适合人群

  • DevOps/SRE 工程师:CI/CD 流水线集成、监控告警通道搭建
  • 后端开发者:钉钉开放平台服务端 API 接入、审批/考勤等业务系统集成
  • 自动化脚本编写者:Python/cron 任务快速接入企业 IM 通知

---

常规风险

1. Webhook 泄露风险access_tokensecret 需按敏感信息保管,避免硬编码提交至 Git
2. 消息轰炸:@all 和自动化结合易造成群信息过载,建议分级(仅 P0 告警 @all,其余仅文本)

3. IP 白名单陷阱:若使用 IP 安全模式,云服务器动态出口变更会导致推送失败

4. 限流中断:未处理 130101 错误可能导致告警链路静默丢失,需实现指数退避重试或降级通道

安全解读

核心用法

钉钉 Skill 是一款面向自动化场景的群机器人通知工具,采用零依赖设计,仅需 Python 标准库即可运行。核心功能围绕 scripts/dingbot.py CLI 脚本展开,支持三种消息类型:文本消息(text)可@指定成员或全员,Markdown消息(markdown)适合结构化报告,链接卡片(link)用于带跳转入口的通知。用户需先在钉钉群设置中创建自定义机器人并选择加签安全模式,随后配置 DING_WEBHOOKDING_SECRET 环境变量即可调用。脚本内置了钉钉官方HMAC-SHA256签名算法,自动处理时间戳拼接、签名生成和URL编码,解决了手写签名最常见的翻车问题。

显著优点

极致轻量:单文件102行代码,零第三方依赖,部署成本极低,任何含Python的环境均可直接运行。安全合规:内置官方加签算法,HTTPS传输,密钥通过环境变量配置无硬编码,网络请求严格限定于 oapi.dingtalk.com 官方域名。场景覆盖全面:CI/CD构建结果推送、监控告警结构化上报、定时日报自动生成、精准@值班人员而非全员打扰,满足企业自动化通知的主流需求。开放平台文档完备:附带钉钉新旧版API域名差异、access_token获取、常用服务端接口等开发速查,降低二次开发门槛。

潜在缺点与局限性

功能边界清晰但也受限:仅覆盖群机器人Webhook场景,不包含个人号自动化(协议逆向风险)、Stream模式回调、AI助理等钉钉新能力。Markdown语法支持子集,不支持表格渲染。频率限制严格,每机器人20条/分钟,超限封禁10分钟,高频场景需自行实现队列或降级。来源可信度为T3:由个人开发者维护,虽经安全审查无恶意代码,但缺乏顶级开源基金会背书,长期维护能力和大型生产环境验证深度有待观察。隐私合规层面,环境变量访问虽用途明确,但文档提示可更显性。

适合的目标群体

中小团队运维/开发者:需要低成本、快速落地的CI/CD通知、监控告警通道,无需复杂基建。Agent自动化场景:希望让AI Agent具备主动向企业IM推送任务结果的能力。钉钉生态集成者:正在开发企业内部应用,需要Webhook通知作为能力补充。安全敏感但轻量需求的组织:希望代码完全透明可审计,不愿引入厚重SDK或第三方依赖。

使用风险与注意事项

频率限流风险:生产环境需评估消息量,避免触发20条/分钟的硬限制。@all滥用风险:全员通知打扰面大,务必在调用前确认必要性。路径遍历风险markdown命令读取本地文件时,建议验证路径防止 ../ 符号越界。版本更新风险:T3来源建议锁定已审查版本,升级前重新安全评估。密钥泄露风险DING_SECRET 环境变量需妥善保管,避免提交至代码仓库或日志打印。

Dingding 内容

scripts文件夹
手动下载zip · 5.6 kB
dingbot.pytext/plain
请选择文件