概述


一、本章定位

第二章的 2.6 节已经介绍了钉钉渠道的基础配置,本章补充进阶配置和安全设置


二、钉钉渠道进阶配置

2.1 dmPolicy:私聊权限模式

钉钉同样支持三种私聊权限模式:

"channels": {
  "dingtalk": {
    "dmPolicy": "allowlist",
    "allowFrom": ["员工1的UserId", "员工2的UserId"]
  }
}

如何获取钉钉用户的 UserId:

  • 钉钉企业管理后台 → 人员管理 → 查看员工 ID
  • 或者问 AI 助手

2.2 groupPolicy:群聊权限

"channels": {
  "dingtalk": {
    "groupPolicy": "mention",
    "requireMention": true
  }
}
设置说明
requireMention: true必须@机器人才响应
requireMention: false群里任何消息都响应(不推荐)

2.3 消息类型配置

钉钉支持多种消息类型的接收和发送:

"channels": {
  "dingtalk": {
    "messageTypes": {
      "text": true,
      "image": true,
      "file": true,
      "voice": false,
      "link": true
    }
  }
}
消息类型说明推荐设置
text文本消息✅ 开启
image图片✅ 开启
file文件✅ 开启
voice语音❌ 关闭(处理复杂)
link链接✅ 开启

三、钉钉安全设置

3.1 Token 验证

钉钉机器人支持加签验证,确保消息来源是钉钉服务器:

"channels": {
  "dingtalk": {
    "verification": {
      "enabled": true,
      "signKey": "your_sign_key"
    }
  }
}

加签密钥在哪里获取: 钉钉开放平台 → 应用详情 → 基础信息 → 应用密钥


3.2 IP 白名单(企业用户)

如果企业有固定出口 IP,可以限制只有特定 IP 能调用钉钉 API:

"channels": {
  "dingtalk": {
    "ipWhitelist": [
      "your.server.ip.1",
      "your.server.ip.2"
    ]
  }
}

3.3 消息加密(可选)

钉钉支持消息体加密传输:

"channels": {
  "dingtalk": {
    "encryption": {
      "enabled": false,
      "encodingAesKey": "your_32_char_key"
    }
  }
}

四、钉钉特有功能配置

4.1 Stream 模式 vs HTTP 模式

钉钉有两种消息接收模式:

模式说明适用场景
Stream 模式(推荐)长连接,不需要公网地址个人开发者、小团队
HTTP 模式需要公网地址接收 POST有自己服务器的企业
配置 Stream 模式:

钉钉开放平台 → 机器人 → 消息接收模式 → 选择 "Stream 模式"


4.2 钉钉卡片消息

钉钉支持更丰富的卡片消息格式:

"channels": {
  "dingtalk": {
    "messageType": "card"
  }
}

card 消息优势:

  • 支持按钮交互
  • 样式更美观
  • 支持 Markdown 格式

五、钉钉完整配置示例

"channels": {
  "dingtalk": {
    "clientId": "ding_xxxxxxxx",
    "clientSecret": "*",
    "robotCode": "4339215487",
    "dmPolicy": "allowlist",
    "allowFrom": ["员工UserId1", "员工UserId2"],
    "groupPolicy": "mention",
    "requireMention": true,
    "messageTypes": {
      "text": true,
      "image": true,
      "file": true,
      "link": true
    },
    "messageType": "card",
    "enabled": true
  }
}

六、常见钉钉问题排查

问题原因解决方法
消息不回调网络不通检查防火墙和 NAT 设置
Stream 连接断开服务器 IP 变化钉钉要求 IP 固定
消息发送失败签名错误检查加签密钥
机器人无权限CorpId 不匹配检查 corpId 配置

七、下一步学什么

  • 3.3 企业微信配置全攻略 → 企业微信渠道配置
  • 3.6 多渠道同时运行配置 → 飞书+钉钉+企微同时配置
  • 3.7 渠道权限管理 → 精细化权限控制

钉钉配置同样有难度,恭喜你又掌握了一个渠道!🎉

常见问题

Q: 钉钉开放平台在哪?
A: <code>open.dingtalk.com</code>