🧪 Skills
DingTalk Channel Setup
钉钉企业内部机器人渠道快速对接。Use when: 用户需要对接钉钉渠道、配置钉钉 Stream 模式、排查钉钉消息问题。NOT for: 飞书/Lark、企业微信等其他平台。
v1.0.0
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
feishuskill - 企业微信 → use
wecomskill - Telegram/Discord → use respective channel skills
Prerequisites
确保已准备:
- 钉钉开放平台企业内部应用(已创建)
- Client ID (AppKey)
- Client Secret (AppSecret)
- 可选: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
按提示操作:
- 选择 "Add a new channel"
- 选择 "DingTalk (钉钉)"
- 输入 Client ID
- 输入 Client Secret
- 选择是否配置完整信息(推荐 Yes)
- 配置其他选项(DM/Group 策略等)
- 完成配置
方式二:手动编辑配置文件
编辑 ~/.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
机器人无响应
检查清单:
-
✅ Gateway 运行中
openclaw gateway status -
✅ 插件在白名单 检查
openclaw.json中的plugins.allow包含"dingtalk" -
✅ 渠道已启用 检查
channels[].enabled为true -
✅ 凭证正确 在钉钉开放平台验证 Client ID/Secret
-
✅ 重启 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"
- 添加
dingtalk到plugins.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)
No comments yet. Be the first to share your thoughts!