OpenClaw 钉钉(DingTalk)渠道
通过社区插件将 OpenClaw 连接到钉钉(DingTalk)。此集成使用钉钉 Stream 模式(WebSocket 长连接),无需公网 IP 或域名。支持私聊、群聊、文本/图片/语音/视频/文件等消息类型,以及 AI Card 流式回复。安装插件、创建钉钉企业内部应用、填入凭证即可启动。
DingTalk 支持的功能
文本消息
支持
媒体与文件
支持
消息反应
不支持
消息线程
不支持
语音消息
支持
群聊
支持
DingTalk 前置条件
- 拥有钉钉组织管理员权限或应用开发权限
- 已安装钉钉插件:openclaw plugins install @soimy/dingtalk
- OpenClaw Gateway 已运行并配置
- 服务器已安装 Node.js 18+
DingTalk 快速设置
安装钉钉插件
在终端中运行 'openclaw plugins install @soimy/dingtalk' 安装社区钉钉插件。如需流式 AI Card 回复,也可选择 '@dingtalk-real-ai/dingtalk-connector' 插件。
创建钉钉企业内部应用
登录钉钉开放平台(open-dev.dingtalk.com),创建企业内部应用。在应用凭证页面获取 ClientID(AppKey)和 ClientSecret(AppSecret)。在应用能力中添加「机器人」能力,消息接收模式选择 Stream 模式。
配置权限并发布
在权限管理中授予所需权限:Card.Instance.Write、Card.Streaming.Write、机器人消息发送、媒体文件上传等。完成后发布应用,等待审批通过。
配置 OpenClaw 并测试
在 ~/.openclaw/openclaw.json 中添加钉钉渠道配置,填入 clientId 和 clientSecret。运行 'openclaw gateway restart' 重启 Gateway,在钉钉中向机器人发送消息测试。
DingTalk 配置示例
{
"channels": {
"dingtalk": {
"enabled": true,
"clientId": "dingXXXXXX",
"clientSecret": "your-app-secret",
"robotCode": "dingXXXXXX",
"corpId": "dingXXXXXX",
"dmPolicy": "open",
"groupPolicy": "open",
"messageType": "markdown"
}
}
}DingTalk 集成详解
架构概述
插件选择
# 安装 @soimy 版本(推荐)
openclaw plugins install @soimy/dingtalk
# 或安装 @dingtalk-real-ai 版本
openclaw plugins install @dingtalk-real-ai/dingtalk-connector钉钉应用创建与凭证获取
# 通过环境变量
export DINGTALK_CLIENT_ID="dingXXXXXX"
export DINGTALK_CLIENT_SECRET="your_app_secret"
# 或通过 CLI
openclaw channels add私聊与群聊策略
{
"channels": {
"dingtalk": {
"dmPolicy": "open",
"groupPolicy": "open"
}
}
}回复格式与 AI Card 流式输出
{
"channels": {
"dingtalk": {
"messageType": "markdown",
"streaming": true
}
}
}消息类型与媒体支持
多 Agent 路由
{
"bindings": [
{ "agentId": "main", "match": { "channel": "dingtalk", "peer": { "kind": "direct" } } },
{ "agentId": "tech-support", "match": { "channel": "dingtalk", "peer": { "kind": "group" } } }
]
}常用命令
DingTalk 配置参考
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | true | 启用或禁用钉钉渠道 |
| clientId | string | "" | 钉钉应用的 ClientID(AppKey),格式 dingXXX,从钉钉开放平台获取 |
| clientSecret | string | "" | 钉钉应用的 ClientSecret(AppSecret),从钉钉开放平台获取 |
| robotCode | string | "" | 机器人的唯一标识码,从钉钉开放平台的机器人配置页获取 |
| corpId | string | "" | 企业的 CorpId,格式 dingXXX,从钉钉管理后台获取 |
| agentId | string | "" | 应用的 AgentId,从钉钉开放平台获取 |
| dmPolicy | string | "open" | 私聊策略。选项:open(开放)、disabled(禁用) |
| groupPolicy | string | "open" | 群聊策略。选项:open(开放)、disabled(禁用) |
| messageType | string | "markdown" | 回复消息格式。选项:text(纯文本)、markdown、card(AI Card) |
| streaming | boolean | true | 启用 AI Card 流式回复(打字机效果) |
| debug | boolean | false | 开启调试模式,输出详细的连接和消息日志 |
启用或禁用钉钉渠道
钉钉应用的 ClientID(AppKey),格式 dingXXX,从钉钉开放平台获取
钉钉应用的 ClientSecret(AppSecret),从钉钉开放平台获取
机器人的唯一标识码,从钉钉开放平台的机器人配置页获取
企业的 CorpId,格式 dingXXX,从钉钉管理后台获取
应用的 AgentId,从钉钉开放平台获取
私聊策略。选项:open(开放)、disabled(禁用)
群聊策略。选项:open(开放)、disabled(禁用)
回复消息格式。选项:text(纯文本)、markdown、card(AI Card)
启用 AI Card 流式回复(打字机效果)
开启调试模式,输出详细的连接和消息日志
DingTalk 常见问题
DingTalk 故障排查
应用可能未发布、Stream 模式未启用、ClientID 或 ClientSecret 错误、或插件未正确安装。
OpenClaw 版本升级后可能出现的兼容性问题,或 AI 模型 API Key 未配置。
网络不稳定或钉钉 Stream 模式已知的消息丢失问题。
群文件和钉盘 API 可能需要企业认证,未认证的组织可能无法使用这些功能。
缺少 Card 相关权限,或 messageType 配置不正确。