钉钉机器人安全设置中关键词匹配规则有哪些注意事项

文章导读
钉钉机器人开启关键词安全设置后,发送的消息内容必须包含至少一个设定的关键词,否则接口会返回失败,适合用于防止机器人被滥用或误调用。
📋 目录
  1. 快速处理思路
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 参考来源
A A

钉钉机器人开启关键词安全设置后,发送的消息内容必须包含至少一个设定的关键词,否则接口会返回失败,适合用于防止机器人被滥用或误调用。

先说结论:关键词匹配是钉钉自定义机器人的一种基础安全过滤机制,开启后消息体必须命中关键词才能送达。

  • 先判断:确认业务代码中发送的消息内容是否固定包含特定标识。
  • 优先做:在机器人设置页面添加关键词,并同步更新发送逻辑。
  • 再验证:通过接口发送测试消息,确认群内是否收到且接口返回成功。

快速处理思路

配置主要在钉钉群管理后台完成,代码侧需配合调整消息内容。核心流程如下:

  1. 进入钉钉群设置,找到已添加的自定义机器人。
  2. 点击机器人头像或设置入口,进入“安全设置”页面。
  3. 勾选“关键词”选项,添加至少一个关键词并保存。
  4. 修改你的发送程序,确保消息正文中包含该关键词。

为什么会这样

钉钉自定义机器人通过 Webhook 地址接收消息,如果不加限制,任何拿到该地址的人都能向群内发送消息。关键词匹配是一种简单的身份验证方式,相当于约定一个“暗号”。只有当 POST 请求的内容中包含这个“暗号”时,钉钉服务器才会放行消息,否则直接拦截并返回错误。这种机制主要用于防止 Webhook 地址泄露后导致的垃圾信息骚扰。

分步处理

1. 确认当前安全设置状态
在钉钉 PC 端或移动端进入群聊,点击右上角设置,找到“智能群助手”或机器人列表。查看目标机器人的安全设置状态,确认是否已开启关键词匹配。如果未开启,建议根据业务敏感度选择开启关键词或签名验证。

2. 设置关键词
在安全设置页面选择“关键词”,输入框内填入你希望消息中包含的文字。官方限制最多可设置 10 个关键词,具体以页面提示为准。建议设置具有业务特征的词,例如“报警”、“通知”、“部署完成”。

3. 修改发送代码
找到调用 Webhook 的代码位置,检查 message 内容。确保发送的 JSON payload 中的 text 或 markdown 内容里完整包含设定的关键词。例如关键词设为“监控”,则消息内容必须包含“监控”二字。

钉钉机器人安全设置中关键词匹配规则有哪些注意事项

以下是包含关键词的请求示例:

cURL 示例:

curl 'https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN' \
   -H 'Content-Type: application/json' \
   -d '{
     "msgtype": "text",
     "text": {
       "content": "【监控】服务器 CPU 使用率超过 90%"
     }
   }'

Python 示例:

import requests
import json

url = "https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN"
headers = {'Content-Type': 'application/json'}
# 确保 content 中包含设置的关键词,例如"监控"
data = {
    "msgtype": "text",
    "text": {
        "content": "【监控】服务器 CPU 使用率超过 90%"
    }
}
response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.text)

4. 保存配置
点击保存后,设置立即生效。此时旧的不含关键词的消息发送请求将会失败,需确保代码已同步更新后再保存,以免中断正常通知。

怎么验证是否生效

1. 接口响应检查
发送一条包含关键词的测试消息,检查 HTTP 响应状态码。成功时通常返回 200 且 body 中包含 errcode 为 0 的 JSON 数据。若未包含关键词,接口会返回错误码(如 310002 等),提示关键词不匹配。

错误响应示例:

钉钉机器人安全设置中关键词匹配规则有哪些注意事项
{
    "errcode": 310002,
    "errmsg": "keyword not match"
}

2. 群消息观察
直接观察钉钉群内是否收到测试消息。如果配置生效且内容匹配,消息会正常显示;如果内容不匹配,群内无消息,但发送端会收到接口报错。

3. 日志确认
查看应用服务器的发送日志,确认是否有因关键词匹配失败导致的重试或报错记录。

常见坑

1. 关键词过于简单
避免设置单个常用字(如“了”、“的”),这可能导致安全机制形同虚设,也无法有效过滤误发。

2. 大小写敏感问题
关键词匹配严格区分大小写。如果设定了"Error",发送"error"可能无法命中。建议统一使用英文大写或中文关键词以减少此类问题。

3. 修改后未同步代码
在后台修改关键词后,如果忘记更新发送代码中的内容,会导致所有通知发送失败。建议先在测试群验证后再同步到生产环境。

4. 内容长度限制
钉钉机器人消息内容本身有长度限制,关键词会占用字符空间。虽然关键词本身不长,但需注意整体消息不要超出平台限制,否则即使关键词匹配也会发送失败。

参考来源

  • 钉钉开放平台 - 自定义机器人接入文档,URL: https://open.dingtalk.com/document/robots/custom-robot-access
  • 钉钉开放平台 - 安全设置说明,URL: https://open.dingtalk.com/document/robots/security-settings