🧪 Skills

DingTalk Channel Setup

钉钉企业内部机器人渠道快速对接。Use when: 用户需要对接钉钉渠道、配置钉钉 Stream 模式、排查钉钉消息问题。NOT for: 飞书/Lark、企业微信等其他平台。

v1.0.0
❤️ 0
⬇️ 221
👁 1
Share

Description


name: dingtalk-setup description: "钉钉企业内部机器人渠道快速对接。Use when: 用户需要对接钉钉渠道、配置钉钉 Stream 模式、排查钉钉消息问题。NOT for: 飞书/Lark、企业微信等其他平台。" homepage: https://github.com/soimy/openclaw-channel-dingtalk metadata: { "openclaw": { "emoji": "💬", "requires": { "bins": ["openclaw"] } } }

DingTalk Channel Setup

钉钉企业内部机器人渠道快速对接指南。

When to Use

USE this skill when:

  • 用户说"对接钉钉"、"配置钉钉机器人"
  • 钉钉消息没有响应,需要排查
  • 需要安装钉钉插件
  • "DingTalk channel setup"

DON'T use when:

  • 飞书/Lark 配置 → use feishu skill
  • 企业微信 → use wecom skill
  • Telegram/Discord → use respective channel skills

Prerequisites

确保已准备:

  1. 钉钉开放平台企业内部应用(已创建)
  2. Client ID (AppKey)
  3. Client Secret (AppSecret)
  4. 可选:Robot Code、Corp ID、Agent ID

Installation

Step 1: Install Plugin

国内网络环境(推荐使用镜像):

$env:NPM_CONFIG_REGISTRY="https://registry.npmmirror.com"
openclaw plugins install @soimy/dingtalk

国际网络:

openclaw plugins install @soimy/dingtalk

如需代理:

$env:HTTP_PROXY="http://127.0.0.1:7897"
$env:HTTPS_PROXY="http://127.0.0.1:7897"
openclaw plugins install @soimy/dingtalk

Step 2: Enable Plugin

编辑 ~/.openclaw/openclaw.json,添加插件到白名单:

{
  "plugins": {
    "enabled": true,
    "allow": ["dingtalk"]
  }
}

如果已有其他插件,添加到数组中:

{
  "plugins": {
    "allow": ["telegram", "discord", "dingtalk"]
  }
}

Step 3: Configure Channel

方式一:交互式配置(推荐)

openclaw configure --section channels

按提示操作:

  1. 选择 "Add a new channel"
  2. 选择 "DingTalk (钉钉)"
  3. 输入 Client ID
  4. 输入 Client Secret
  5. 选择是否配置完整信息(推荐 Yes)
  6. 配置其他选项(DM/Group 策略等)
  7. 完成配置

方式二:手动编辑配置文件

编辑 ~/.openclaw/openclaw.json,添加 channel 配置:

{
  "channels": [
    {
      "id": "dingtalk",
      "plugin": "dingtalk",
      "enabled": true,
      "clientId": "your_client_id",
      "clientSecret": "your_client_secret",
      "dm": "open",
      "group": "open"
    }
  ]
}

完整配置示例:

{
  "id": "dingtalk",
  "plugin": "dingtalk",
  "enabled": true,
  "clientId": "ding3ti4ahg82dsfkwld",
  "clientSecret": "FrpMFcI30c0STvaJJWyMSZoyeb2Hkm9YqXY-6mJ0dGwdN8Xux7mgT_Xn7qnpvO-F",
  "robotCode": "your_robot_code",
  "corpId": "your_corp_id",
  "agentId": "your_agent_id",
  "aiCard": false,
  "dm": "open",
  "group": "open"
}

Step 4: Restart Gateway

openclaw gateway restart

Configuration Options

参数 必需 说明 默认值
clientId DingTalk App Key -
clientSecret DingTalk App Secret -
robotCode 机器人代码 -
corpId 企业 ID -
agentId 应用 Agent ID -
aiCard 启用 AI 互动卡片 false
dm 私聊策略:open / allowlist open
group 群聊策略:open / allowlist open

Verification

测试连接:

# 检查 Gateway 状态
openclaw gateway status

# 查看日志
openclaw logs gateway

# 列出插件
openclaw plugins list

在钉钉中给机器人发送消息,应该能收到回复。

Troubleshooting

插件安装卡住

如果安装停在 "Installing plugin dependencies...":

cd ~/.openclaw/extensions/dingtalk
rm -rf node_modules package-lock.json
NPM_CONFIG_REGISTRY=https://registry.npmmirror.com npm install
openclaw gateway restart

机器人无响应

检查清单:

  1. Gateway 运行中

    openclaw gateway status
    
  2. 插件在白名单 检查 openclaw.json 中的 plugins.allow 包含 "dingtalk"

  3. 渠道已启用 检查 channels[].enabledtrue

  4. 凭证正确 在钉钉开放平台验证 Client ID/Secret

  5. 重启 Gateway

    openclaw gateway restart
    

网络问题(中国大陆)

# 设置 npm 镜像
$env:NPM_CONFIG_REGISTRY="https://registry.npmmirror.com"

# 设置代理(如需要)
$env:HTTP_PROXY="http://127.0.0.1:7897"
$env:HTTPS_PROXY="http://127.0.0.1:7897"

常见错误

"Plugin not found"

  • 确认插件已安装:openclaw plugins list
  • 检查目录存在:~/.openclaw/extensions/dingtalk

"Connection failed"

  • 验证钉钉开放平台凭证
  • 检查网络连接
  • 查看日志:openclaw logs gateway

"Plugin not loaded"

  • 添加 dingtalkplugins.allow
  • 重启 Gateway

Automated Setup (Optional)

如果需要自动化批量部署,可以创建以下 PowerShell 脚本:

auto-setup.ps1:

# DingTalk Channel Auto Setup Script
# Usage: .\auto-setup.ps1 -ClientId "xxx" -ClientSecret "xxx"

param(
    [Parameter(Mandatory=$true)]
    [string]$ClientId,
    
    [Parameter(Mandatory=$true)]
    [string]$ClientSecret,
    
    [string]$RobotCode = "",
    [string]$CorpId = "",
    [string]$AgentId = "",
    [string]$ProxyUrl = "http://127.0.0.1:7897",
    [string]$NpmRegistry = "https://registry.npmmirror.com",
    [switch]$UseProxy = $false
)

Write-Host "=== DingTalk Channel Auto Setup ===" -ForegroundColor Cyan

# Set proxy if needed
if ($UseProxy) {
    $env:HTTP_PROXY = $ProxyUrl
    $env:HTTPS_PROXY = $ProxyUrl
}

# Set npm registry
$env:NPM_CONFIG_REGISTRY = $NpmRegistry

# Install plugin
Write-Host "Installing plugin..." -ForegroundColor Yellow
openclaw plugins install @soimy/dingtalk

# Update openclaw.json
Write-Host "Updating configuration..." -ForegroundColor Yellow
$configPath = "$env:USERPROFILE\.openclaw\openclaw.json"
$config = Get-Content $configPath -Raw | ConvertFrom-Json

# Add plugin to allowlist
if (-not $config.plugins) {
    $config | Add-Member -MemberType NoteProperty -Name "plugins" -Value @{
        enabled = $true
        allow = @("dingtalk")
    }
} else {
    if (-not $config.plugins.allow) {
        $config.plugins | Add-Member -MemberType NoteProperty -Name "allow" -Value @("dingtalk")
    } elseif ($config.plugins.allow -notcontains "dingtalk") {
        $config.plugins.allow += "dingtalk"
    }
}

# Add channel configuration
if (-not $config.channels) {
    $config | Add-Member -MemberType NoteProperty -Name "channels" -Value @()
}

$dingtalkConfig = @{
    id = "dingtalk"
    plugin = "dingtalk"
    enabled = $true
    clientId = $ClientId
    clientSecret = $ClientSecret
    dm = "open"
    group = "open"
}

if ($RobotCode) { $dingtalkConfig.robotCode = $RobotCode }
if ($CorpId) { $dingtalkConfig.corpId = $CorpId }
if ($AgentId) { $dingtalkConfig.agentId = $AgentId }

$config.channels = @($config.channels | Where-Object { $_.id -ne "dingtalk" })
$config.channels += $dingtalkConfig

$config | ConvertTo-Json -Depth 10 | Set-Content $configPath

# Restart Gateway
Write-Host "Restarting Gateway..." -ForegroundColor Yellow
openclaw gateway restart

Write-Host "Setup Complete!" -ForegroundColor Green

使用方法

# 基本用法
.\auto-setup.ps1 -ClientId "your_id" -ClientSecret "your_secret"

# 使用代理
.\auto-setup.ps1 -ClientId "your_id" -ClientSecret "your_secret" -UseProxy

# 完整配置
.\auto-setup.ps1 `
    -ClientId "your_id" `
    -ClientSecret "your_secret" `
    -RobotCode "your_code" `
    -CorpId "your_corp" `
    -AgentId "your_agent" `
    -UseProxy

Files & Locations

  • 配置文件: ~/.openclaw/openclaw.json
  • 插件目录: ~/.openclaw/extensions/dingtalk
  • 日志: openclaw logs gateway

References

Notes

  • 使用 Stream 模式(无需公网 IP)
  • 支持私聊和群聊
  • AI 互动卡片可选
  • 仅支持企业内部应用

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs