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 小琳 ✨

相关推荐
网硕互联的小客服2 小时前
Linux服务器磁盘应该如何合理分区?
linux·运维·服务器
Johny_Zhao3 小时前
FreeRADIUS + 华为AC/AP + 802.1X/WPA2-Enterprise 无线认证对接部署完整指南
网络·网络安全·信息安全·ldap·radius·huawei·系统运维·centos8
lisanmengmeng3 小时前
nacos nrpe 监控机及被监控机部署
服务器·nacos·nagios·nrpe
天远API4 小时前
零信任架构实战:基于天远人企关联构建自动化图谱网关
网络·人工智能·架构·自动化
2301_808414384 小时前
Linux中动静态库的理解
linux·运维·服务器
vipjx15 小时前
百度网盘限速怎么破?2026实测PanDownload多线程提速方案
网络·智能路由器
可涵不会debug6 小时前
第一次学 LangGraph:用一个快递案例搞懂 State、Node、Edge 和 compile
服务器·数据库·mysql
不会就选b7 小时前
Linux之应用层协议HTTP(二)
网络·网络协议·http
hasty7 小时前
只监听本机为何仍需鉴权?Cline Hub 的 WebSocket 信任边界解析
网络·websocket·网络协议
小小小小钰儿7 小时前
1.5-Python网络编程
开发语言·网络·python·web安全·计算机·网络安全