钉钉机器人 webhook 发送失败报错 310000 怎么解决?

文章导读
钉钉机器人 webhook 返回报错 310000 多数场景下表示请求服务器的 IP 地址未添加到机器人安全设置的白名单中。解决方向是查询出口 IP 并在钉钉后台配置放行,注意动态 IP 环境可能导致配置失效。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 常见问题
  7. 参考来源
A A

钉钉机器人 webhook 返回报错 310000 多数场景下表示请求服务器的 IP 地址未添加到机器人安全设置的白名单中。解决方向是查询出口 IP 并在钉钉后台配置放行,注意动态 IP 环境可能导致配置失效。

先说结论:报错 310000 核心原因是 IP 白名单校验未通过,需将发送请求的服务器公网 IP 加入钉钉机器人安全设置。

  • 先确认:查询发送请求服务器的出口公网 IP 地址
  • 先处理:在钉钉机器人管理后台将该 IP 加入白名单
  • 再验证:重新发送 webhook 请求确认报错消失

命令速用版

在发送请求的服务器上执行以下命令,查看出口 IP 地址:

curl ifconfig.me

或使用钉钉提供的测试发送功能前,确保本地网络 IP 已录入。

钉钉机器人 webhook 发送失败报错 310000 怎么解决?

为什么会这样

钉钉机器人 webhook 接口启用了 IP 白名单安全机制,防止恶意调用。

当请求头中的来源 IP 与管理后台配置的不一致时,接口会拦截请求并返回 310000 错误码。这是钉钉开放平台设定的默认安全策略,未配置白名单或配置错误均会触发。

分步处理

按以下顺序操作,确保配置准确:

钉钉机器人 webhook 发送失败报错 310000 怎么解决?
  1. 获取出口 IP:在部署代码的服务器或网关设备上,使用 curl 命令查询公网 IP。若经过 NAT 网关,需查询网关出口 IP 而非内网 IP。
  2. 进入配置页:登录钉钉管理后台,进入机器人管理页面,找到对应的自定义机器人。
  3. 添加白名单:在安全设置区域选择“IP 地址白名单”,将上一步获取的 IP 填入并保存。若有多台服务器,需全部添加。
  4. 检查关键词:若同时开启了“自定义关键词”,确保消息内容中包含该关键词,否则可能报其他错误。

怎么验证是否生效

配置完成后,再次触发业务代码发送 webhook 请求。

观察返回 JSON 数据,若 errcode 变为 0 且 errmsg 为 ok,则表示生效。也可在钉钉群内查看是否收到消息通知。

钉钉机器人 webhook 发送失败报错 310000 怎么解决?

常见坑

  • 动态 IP 环境:若服务器出口 IP 不固定,每次变化都会导致报错,建议使用固定 IP 代理或切换签名验证方式。
  • 多出口网络:服务器有多个网卡或路由时,请求可能从不同 IP 发出,需确保所有可能出口 IP 均加入白名单。
  • 本地测试:本地开发环境直接调用会因本地 IP 未白名单而失败,需临时添加本地 IP 或通过服务器中转。

常见问题

服务器 IP 变了怎么办?

需重新登录钉钉后台更新白名单 IP,或改用加签验证方式避免 IP 限制。

加了白名单还是报 310000?

检查是否经过多层代理,实际请求 IP 可能与查询 IP 不一致,建议在请求日志中打印实际来源 IP 核对。

必须同时配置关键词吗?

不是,IP 白名单和自定义关键词是两种独立的安全设置,任选其一或同时开启均可,但需满足对应校验规则。

参考来源

  • 钉钉开放平台,自定义机器人安全设置,https://open.dingtalk.com