OpenClaw 钉钉插件安装指南
概述
将 OpenClaw AI 助手接入钉钉,实现双向聊天(你发消息给机器人,机器人回复你)。
一、钉钉开放平台配置
1. 创建应用
- 登录 钉钉开放平台
- 应用开发 → 企业内部应用 → 创建应用
- 填写应用名称和描述
2. 添加机器人能力
- 进入应用 → 添加应用能力 → 机器人
- 配置机器人信息(名称、头像等)
3. 开启 Stream 模式(重要!)
- 机器人配置 → 消息接收模式
- 选择 Stream 模式(无需公网域名)
4. 获取凭证
在「凭证与基础信息」页面获取:
- AppKey (clientId) :
dingxxxxxxxxxx - AppSecret (clientSecret):一长串字符
5. 发布应用
- 版本管理与发布 → 发布
- 选择可见范围(可先选「仅自己可见」测试)
二、OpenClaw 插件安装
1. 安装插件
bash
openclaw plugins install @moltybob/dingtalk
如果安装时依赖报错,手动装依赖:
bash
cd ~/.openclaw/extensions/dingtalk && npm install --omit=dev --ignore-scripts
2. 验证插件加载
bash
openclaw plugins list | grep dingtalk
应显示 dingtalk | loaded
三、配置钉钉凭证
编辑配置文件 ~/.openclaw/openclaw.json,添加:
json
{
"channels": {
"dingtalk": {
"enabled": true,
"clientId": "你的AppKey",
"clientSecret": "你的AppSecret",
"dmPolicy": "pairing"
}
}
}
或者通过命令行:
bash
openclaw config set channels.dingtalk.enabled true
openclaw config set channels.dingtalk.clientId "你的AppKey"
openclaw config set channels.dingtalk.clientSecret "你的AppSecret"
openclaw config set channels.dingtalk.dmPolicy "pairing"
dmPolicy 选项
pairing: 需要配对才能使用(推荐)open: 任何人都可以私聊allowlist: 只允许指定用户
四、重启 Gateway
bash
openclaw gateway restart
五、验证连接
bash
openclaw channels status
应显示:
DingTalk default: enabled, configured, mode:stream
查看日志确认连接成功:
bash
openclaw channels logs | grep dingtalk
应看到 Successfully connected to DingTalk stream
六、使用机器人
私聊
- 钉钉搜索框搜索你的应用名
- 找到机器人,发送消息
群聊
- 进入群 → 群设置 → 群机器人 → 添加机器人
- 选择你的应用
- @机器人 发送消息
七、已知问题与修复
问题:控制面板返回 {"success":true} 而非页面
原因:钉钉插件的 webhook handler 拦截了所有 HTTP 请求
修复 :编辑 ~/.openclaw/extensions/dingtalk/src/monitor.ts
找到 handleDingTalkWebhookRequest 函数开头,改成:
typescript
export async function handleDingTalkWebhookRequest(
req: import('node:http').IncomingMessage,
res: import('node:http').ServerResponse
): Promise<boolean> {
// Only handle POST requests to dingtalk webhook paths
const url = req.url || '';
const isDingTalkPath = url.includes('/dingtalk') || url.includes('/webhook');
if (req.method !== 'POST' || !isDingTalkPath) {
return false; // Let other handlers process non-dingtalk requests
}
console.log(`[dingtalk] HTTP request received: ${req.method} ${req.url}`);
// ... 后面代码不变
然后重启 Gateway。
八、相关文件位置
| 文件 | 路径 |
|---|---|
| 插件目录 | ~/.openclaw/extensions/dingtalk/ |
| 配置文件 | ~/.openclaw/openclaw.json |
| 日志 | openclaw channels logs |
九、环境信息(本次安装)
- 系统: WSL2 Ubuntu 24.04
- 插件版本: @moltybob/dingtalk 0.1.0
- OpenClaw 版本: 2026.1.30
- 安装日期: 2026-02-02
by 小琳 ✨