一、环境信息

OpenClaw 版本:2026.6.10
钉钉插件:@soimy/dingtalk v3.6.4
运行环境:Docker + WSL2
钉钉应用:企业内部应用(Stream 模式)


二、钉钉应用准备

1. 登录钉钉开发者平台:https://open-dev.dingtalk.com/
2. 创建企业内部应用
3. 获取 Client ID (AppKey) 和 Client Secret (AppSecret)

机器人配置:
- 消息接收模式:Stream 模式(无需公网 IP)
- 机器人名称:自定义

开通权限(在"权限管理"页面):
- Card.Streaming.Write
- Card.Instance.Write
- qyapi_robot_sendmsg

发布应用:
- 进入"版本管理与发布"
- 创建新版本并发布(至少测试版本)


三、OpenClaw 钉钉集成

3.1 进入容器
docker exec -it openclaw bash

3.2 安装钉钉插件
openclaw plugins install npm:@soimy/dingtalk

如果安装卡住,尝试:
openclaw plugins install clawhub:@soimy/dingtalk

3.3 添加钉钉通道
openclaw channels add

按提示操作:
1. 选择 DingTalk (钉钉)
2. 选择 Add default account
3. 选择 No(手动输入凭证)
4. 输入 Client ID 和 Client Secret
5. 私聊策略:Open - anyone can DM
6. 群聊策略:Open - any group can use bot
7. 回复类型:Markdown
8. 高级选项:No

3.4 配置 allowFrom(如果收到警告)
openclaw config set channels.dingtalk.allowFrom '["*"]'

3.5 重启生效
exit
docker restart openclaw
docker exec -it openclaw bash


四、验证部署

4.1 查看通道状态
openclaw channels status

期望输出:
DingTalk default: enabled, configured, running, connected

4.2 测试消息收发
1. 打开钉钉,搜索机器人名称
2. 发送消息"你好"
3. 查看实时日志:
openclaw logs --follow


五、完整配置文件(openclaw.json 核心部分)

{
  "channels": {
    "dingtalk": {
      "enabled": true,
      "clientId": "你的Client ID",
      "clientSecret": "你的Client Secret",
      "dmPolicy": "open",
      "groupPolicy": "open",
      "allowFrom": ["*"]
    }
  },
  "bindings": [
    {
      "agentId": "main",
      "match": {
        "channel": "dingtalk",
        "accountId": "default"
      }
    }
  ]
}


六、常见问题排查

6.1 连接测试 403
- 检查 Client ID 和 Client Secret 是否正确
- 确认应用已发布
- 确认 Stream 模式已启用
- 用 curl 测试凭证有效性:
curl -X POST "https://api.dingtalk.com/v1.0/oauth2/accessToken" -H "Content-Type: application/json" -d '{"appKey":"你的Client ID","appSecret":"你的Client Secret"}'

6.2 通道状态显示 not configured
检查配置文件中 channels.dingtalk 是否包含 clientId 和 clientSecret。

6.3 消息无响应
- 确认 channels.dingtalk.allowFrom 包含 ["*"]
- 确认 bindings 中的 accountId 与 channels 中的账户名一致
- 查看实时日志:openclaw logs --follow


七、最终状态

钉钉插件:已安装(@soimy/dingtalk)
通道状态:DingTalk default: running
消息收发:正常
Web UI:可访问

更多推荐