OpenClaw 釘釘(DingTalk)頻道
透過社群外掛將 OpenClaw 連接到釘釘(DingTalk)。此整合使用釘釘 Stream 模式(WebSocket 長連線),無需公網 IP 或網域。支援私聊、群聊、文字/圖片/語音/影片/檔案等訊息類型,以及 AI Card 串流回覆。安裝外掛、建立釘釘企業內部應用、填入憑證即可啟動。
DingTalk 支援功能
文字訊息
支援
媒體與檔案
支援
表情回應
不支援
討論串
不支援
語音訊息
支援
群組聊天
支援
DingTalk 前置條件
- 擁有釘釘組織管理員權限或應用程式開發權限
- 已安裝釘釘外掛:openclaw plugins install @soimy/dingtalk
- OpenClaw Gateway 已執行並設定
- 伺服器已安裝 Node.js 18+
DingTalk 快速設定
安裝釘釘外掛
在終端機中執行 'openclaw plugins install @soimy/dingtalk' 安裝社群釘釘外掛。如需串流 AI Card 回覆,也可選擇 '@dingtalk-real-ai/dingtalk-connector' 外掛。
建立釘釘企業內部應用
登入釘釘開放平台(open-dev.dingtalk.com),建立企業內部應用。在應用憑證頁面取得 ClientID(AppKey)和 ClientSecret(AppSecret)。在應用能力中新增「機器人」能力,訊息接收模式選擇 Stream 模式。
設定權限並發布
在權限管理中授予所需權限:Card.Instance.Write、Card.Streaming.Write、機器人訊息傳送、媒體檔案上傳等。完成後發布應用,等待審批通過。
設定 OpenClaw 並測試
在 ~/.openclaw/openclaw.json 中新增釘釘頻道設定,填入 clientId 和 clientSecret。執行 'openclaw gateway restart' 重新啟動 Gateway,在釘釘中向機器人傳送訊息測試。
DingTalk 設定範例
{
"channels": {
"dingtalk": {
"enabled": true,
"clientId": "dingXXXXXX",
"clientSecret": "your-app-secret",
"robotCode": "dingXXXXXX",
"corpId": "dingXXXXXX",
"dmPolicy": "open",
"groupPolicy": "open",
"messageType": "markdown"
}
}
}DingTalk 整合詳解
架構概述
外掛選擇
# 安裝 @soimy 版本(推薦)
openclaw plugins install @soimy/dingtalk
# 或安裝 @dingtalk-real-ai 版本
openclaw plugins install @dingtalk-real-ai/dingtalk-connector釘釘應用建立與憑證取得
# 透過環境變數
export DINGTALK_CLIENT_ID="dingXXXXXX"
export DINGTALK_CLIENT_SECRET="your_app_secret"
# 或透過 CLI
openclaw channels add私聊與群聊策略
{
"channels": {
"dingtalk": {
"dmPolicy": "open",
"groupPolicy": "open"
}
}
}回覆格式與 AI Card 串流輸出
{
"channels": {
"dingtalk": {
"messageType": "markdown",
"streaming": true
}
}
}訊息類型與媒體支援
多 Agent 路由
{
"bindings": [
{ "agentId": "main", "match": { "channel": "dingtalk", "peer": { "kind": "direct" } } },
{ "agentId": "tech-support", "match": { "channel": "dingtalk", "peer": { "kind": "group" } } }
]
}常用指令
DingTalk 設定參考
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | true | 啟用或停用釘釘頻道 |
| clientId | string | "" | 釘釘應用的 ClientID(AppKey),格式 dingXXX,從釘釘開放平台取得 |
| clientSecret | string | "" | 釘釘應用的 ClientSecret(AppSecret),從釘釘開放平台取得 |
| robotCode | string | "" | 機器人的唯一識別碼,從釘釘開放平台的機器人設定頁取得 |
| corpId | string | "" | 企業的 CorpId,格式 dingXXX,從釘釘管理後台取得 |
| agentId | string | "" | 應用的 AgentId,從釘釘開放平台取得 |
| dmPolicy | string | "open" | 私聊策略。選項:open(開放)、disabled(停用) |
| groupPolicy | string | "open" | 群聊策略。選項:open(開放)、disabled(停用) |
| messageType | string | "markdown" | 回覆訊息格式。選項:text(純文字)、markdown、card(AI Card) |
| streaming | boolean | true | 啟用 AI Card 串流回覆(打字機效果) |
| debug | boolean | false | 開啟偵錯模式,輸出詳細的連線和訊息日誌 |
啟用或停用釘釘頻道
釘釘應用的 ClientID(AppKey),格式 dingXXX,從釘釘開放平台取得
釘釘應用的 ClientSecret(AppSecret),從釘釘開放平台取得
機器人的唯一識別碼,從釘釘開放平台的機器人設定頁取得
企業的 CorpId,格式 dingXXX,從釘釘管理後台取得
應用的 AgentId,從釘釘開放平台取得
私聊策略。選項:open(開放)、disabled(停用)
群聊策略。選項:open(開放)、disabled(停用)
回覆訊息格式。選項:text(純文字)、markdown、card(AI Card)
啟用 AI Card 串流回覆(打字機效果)
開啟偵錯模式,輸出詳細的連線和訊息日誌
DingTalk 常見問題
DingTalk 故障排除
應用可能未發布、Stream 模式未啟用、ClientID 或 ClientSecret 錯誤、或外掛未正確安裝。
OpenClaw 版本升級後可能出現的相容性問題,或 AI 模型 API Key 未設定。
網路不穩定或釘釘 Stream 模式已知的訊息遺失問題。
群檔案和釘盤 API 可能需要企業認證,未認證的組織可能無法使用這些功能。
缺少 Card 相關權限,或 messageType 設定不正確。