钉钉群机器人消息被屏蔽确实可能是因为内容包含敏感词,但也常见于机器人安全设置中的关键词匹配失败。解决时需先检查机器人后台的安全配置(关键词或签名),再审查发送内容是否触发系统过滤,最后验证网络与接口状态。
先说结论:消息发送失败通常由机器人安全策略拦截或系统内容过滤导致,需区分是“未满足安全关键词”还是“触犯敏感词规则”。
- 先确认:登录钉钉群设置,查看机器人安全配置是“自定义关键词”还是“加签”,确认发送内容是否包含设定关键词。
- 先处理:若未设置关键词则补充配置,若内容违规则修改文案,若签名错误则重新计算签名参数。
- 再验证:使用 curl 或代码发送测试消息,观察群聊是否收到且无报错返回。
快速处理思路
遇到消息不显示或发送报错,优先排查机器人安全设置中的关键词匹配问题,这是最常见的配置失误。若安全配置无误,再检查内容是否包含敏感词导致被系统过滤,最后排查网络连通性与接口权限。
为什么会这样
钉钉机器人消息被拦截主要有两层机制:一是机器人自身的安全防护,二是平台的内容合规过滤。自定义关键词是一种内容层面的过滤机制,当机器人设置关键词后,消息内容必须包含至少一个已设定的关键词才会被成功发送,否则请求将被拒绝。此外,钉钉系统会对敏感词进行过滤,如果言论内容包含了敏感词,就有可能被系统过滤,甚至导致账号被禁言。
分步处理
步骤一:检查机器人安全设置
进入群聊设置找到智能群助手,查看已添加的机器人配置。若选择了“自定义关键词”,发送的消息文本中必须含有设置的关键字之一才可以成功发送。若选择了“加签”,请求链接地址上必须加上 sign 参数,且需使用 HmacSHA256 算法计算签名。
步骤二:审查发送内容
检查消息内容是否包含违规词汇,避免发布违规内容以防止被系统过滤。若涉及敏感话题,需调整文案措辞。确保 text 类型检查 content 字段,markdown 类型检查 text 字段是否包含关键词。
步骤三:验证网络与接口
尝试切换网络环境,比如从公司的 wi-fi 切换到手机网络,排除网络问题导致的过滤假象。检查 Webhook 地址是否正确,若设置了验签,确保 timestamp 和 sign 参数计算无误且已进行 urlEncode。
怎么验证是否生效
发送一条包含设定关键词的测试消息,观察群聊窗口是否立即显示。若使用代码发送,检查 HTTP 响应状态,若签名或 token 校验失败将直接返回错误且不投递。若钉钉开放平台日志中无请求记录,则问题大概率出在机器人配置或消息路由环节。
常见坑
- 关键词不匹配:设置了关键词但发送内容未包含,导致请求被拒绝,误以为是敏感词屏蔽。
- 签名计算错误:加签模式下未正确使用毫秒级时间戳或未进行 Base64 encode 和 urlEncode,导致签名校验失败。
- 混淆禁言与屏蔽:用户被系统禁言是因为言论不当,而机器人消息被屏蔽可能是配置问题,需区分是账号受限还是接口拦截。
- 可见范围限制:钉钉对未正式安装或权限受限的机器人实施静默拦截,需确认机器人可见范围设置为本群成员可见。
常见问题
钉钉机器人消息被屏蔽和账号被禁言是一回事吗?
不是一回事。账号被禁言通常是因为用户在群聊中发布了违规内容被管理员或系统设置禁止发言,而机器人消息被屏蔽更多是因为安全配置(如关键词、签名)不匹配或接口调用失败。
自定义关键词最多能设置几个?
可以在机器人设置中定义若干个关键词,最多 10 个,每个不超过 64 字符。消息内容需包含至少一个已设定的关键词才会被成功发送。
发送消息时需要计算签名吗?
取决于安全设置。如果设置了验签,那么必须要计算签名才可以发送,请求时链接地址上需加上 sign 参数;若仅设置关键词则无需签名。
参考来源
- 钉钉机器人安全配置全攻略:从 IP 白名单到关键词过滤的避坑指南
- 钉钉被系统过滤了怎么办
- php 接入钉钉群机器人实现日志报错预警以及注意事项
- WorkBuddy 钉钉机器人无法响应_WorkBuddy 钉钉消息不触发处理方法
- 钉钉上被系统禁言怎么办
- 机器人发送群聊消息 - 钉钉开放平台