OpenClaw 钉钉插件安装指南

OpenClaw 钉钉插件安装指南

概述

将 OpenClaw AI 助手接入钉钉,实现双向聊天(你发消息给机器人,机器人回复你)。


一、钉钉开放平台配置

1. 创建应用

  1. 登录 钉钉开放平台
  2. 应用开发 → 企业内部应用 → 创建应用
  3. 填写应用名称和描述

2. 添加机器人能力

  1. 进入应用 → 添加应用能力 → 机器人
  2. 配置机器人信息(名称、头像等)

3. 开启 Stream 模式(重要!)

  1. 机器人配置 → 消息接收模式
  2. 选择 Stream 模式(无需公网域名)

4. 获取凭证

在「凭证与基础信息」页面获取:

  • AppKey (clientId)dingxxxxxxxxxx
  • AppSecret (clientSecret):一长串字符

5. 发布应用

  1. 版本管理与发布 → 发布
  2. 选择可见范围(可先选「仅自己可见」测试)

二、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


六、使用机器人

私聊

  1. 钉钉搜索框搜索你的应用名
  2. 找到机器人,发送消息

群聊

  1. 进入群 → 群设置 → 群机器人 → 添加机器人
  2. 选择你的应用
  3. @机器人 发送消息

七、已知问题与修复

问题:控制面板返回 {"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 小琳 ✨

相关推荐
代码AI弗森2 小时前
WSL2:在 Windows 上获得一整套可托付的 Linux 工程环境
linux·运维·服务器
niceffking2 小时前
Linux信号相关函数
linux·运维·服务器·linux信号
蚰蜒螟2 小时前
Linux 7 中的系统调用原理
linux·运维·服务器
AC赳赳老秦2 小时前
DeepSeek一体机部署:中小企业本地化算力成本控制方案
服务器·数据库·人工智能·zookeeper·时序数据库·terraform·deepseek
Reuuse2 小时前
【linux】进程间通信
linux·运维·服务器
code monkey.2 小时前
【Linux之旅】Linux 动静态库与 ELF 加载全解析:从制作到底层原理
linux·服务器·c++·动静态库
爱吃汽的小橘2 小时前
揭秘802.15.4:物联网通信基石
网络·学习
kylezhao20193 小时前
C#中开放 - 封闭原则(**Open-Closed Principle,OCP**)
服务器·c#·开闭原则
云小逸3 小时前
【网络通信】TCP核心原理深度解析:三次握手/四次挥手为基,拥塞控制与慢启动核心精讲
网络·网络协议·tcp/ip