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

相关推荐
对象存储与RustFS15 小时前
网盘限速逼你开会员?用 RustFS 自己搭一个不限速的“私人网盘
服务器·后端·docker
..Dauntless..17 小时前
【Linux】一切皆文件和缓冲区
linux·运维·服务器
裕晟资质规划17 小时前
三类资质变更报告时限差在哪?军工 15 日、集成印制 10 日
大数据·服务器·网络
QMCY_jason17 小时前
x86 ubuntu2204 无gui 安装 openeuler 2203 aarch64版本
linux·运维·服务器
重生之小比特17 小时前
【Linux系统】12 进程程序替换 自定义Shell 命令行解释器
linux·运维·服务器
轻舟技术A17 小时前
Provider 不属于 Agent 核心:rpi 的分层理由与收益
服务器·网络
连山齐名18 小时前
ai应用开发的学习笔记
服务器·笔记·学习
Shadow(⊙o⊙)18 小时前
仿muduo实现高并发服务器——事件就绪管理Channel.hpp
服务器·c++
あ-18 小时前
CubeSandBox配置CubeMaster CPU 超分
linux·运维·服务器
Escalating_xu18 小时前
【Linux 网络编程】TCP Socket 编程(上):从 listen、accept 到完整回显通信
linux·网络·tcp/ip