OpenClaw DingTalk チャンネル
コミュニティプラグインを使用して OpenClaw を DingTalk(钉钉)に接続します。この統合は DingTalk の Stream モード(WebSocket ロングコネクション)を使用するため、パブリック IP やドメインは不要です。個人チャット、グループチャット、テキスト/画像/音声/動画/ファイルなどのメッセージタイプ、および AI Card ストリーミング返信をサポートしています。プラグインをインストールし、DingTalk 企業内部アプリを作成して認証情報を入力するだけで起動できます。
DingTalk 対応機能
テキストメッセージ
対応
メディア・ファイル
対応
リアクション
非対応
スレッド
非対応
音声メッセージ
対応
グループチャット
対応
DingTalk 前提条件
- DingTalk 組織の管理者権限またはアプリ開発権限
- DingTalk プラグインのインストール:openclaw plugins install @soimy/dingtalk
- OpenClaw Gateway が実行中で設定済みであること
- サーバーに Node.js 18+ がインストール済みであること
DingTalk クイックセットアップ
DingTalk プラグインをインストール
ターミナルで 'openclaw plugins install @soimy/dingtalk' を実行してコミュニティ DingTalk プラグインをインストールします。AI Card ストリーミング返信が必要な場合は、'@dingtalk-real-ai/dingtalk-connector' プラグインも選択できます。
DingTalk 企業内部アプリを作成
DingTalk オープンプラットフォーム(open-dev.dingtalk.com)にログインし、企業内部アプリを作成します。アプリ認証情報ページで ClientID(AppKey)と ClientSecret(AppSecret)をコピーします。アプリ機能で「ボット」機能を追加し、メッセージ受信モードで Stream モードを選択します。
権限を設定して公開
権限管理で必要な権限を付与します:Card.Instance.Write、Card.Streaming.Write、ボットメッセージ送信、メディアファイルアップロードなど。完了後、アプリを公開し、承認を待ちます。
OpenClaw を設定してテスト
~/.openclaw/openclaw.json に DingTalk チャンネル設定を追加し、clientId と clientSecret を入力します。'openclaw gateway restart' で Gateway を再起動し、DingTalk でボットにメッセージを送信してテストします。
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-connectorDingTalk アプリの作成と認証情報の取得
# 環境変数経由
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
}
}
}メッセージタイプとメディアサポート
マルチエージェントルーティング
{
"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 | DingTalk チャンネルの有効/無効 |
| clientId | string | "" | DingTalk アプリの ClientID(AppKey)、形式 dingXXX、DingTalk オープンプラットフォームから取得 |
| clientSecret | string | "" | DingTalk アプリの ClientSecret(AppSecret)、DingTalk オープンプラットフォームから取得 |
| robotCode | string | "" | ボットの一意識別コード、DingTalk オープンプラットフォームのボット設定ページから取得 |
| corpId | string | "" | 企業の CorpId、形式 dingXXX、DingTalk 管理コンソールから取得 |
| agentId | string | "" | アプリの AgentId、DingTalk オープンプラットフォームから取得 |
| 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 | デバッグモードを有効にし、詳細な接続とメッセージのログを出力 |
DingTalk チャンネルの有効/無効
DingTalk アプリの ClientID(AppKey)、形式 dingXXX、DingTalk オープンプラットフォームから取得
DingTalk アプリの ClientSecret(AppSecret)、DingTalk オープンプラットフォームから取得
ボットの一意識別コード、DingTalk オープンプラットフォームのボット設定ページから取得
企業の CorpId、形式 dingXXX、DingTalk 管理コンソールから取得
アプリの AgentId、DingTalk オープンプラットフォームから取得
個人チャットポリシー。オプション:open(開放)、disabled(無効)
グループチャットポリシー。オプション:open(開放)、disabled(無効)
返信メッセージの形式。オプション:text(プレーンテキスト)、markdown、card(AI Card)
AI Card ストリーミング返信(タイピングエフェクト)を有効にする
デバッグモードを有効にし、詳細な接続とメッセージのログを出力
DingTalk よくある質問
DingTalk トラブルシューティング
アプリが公開されていない、Stream モードが有効になっていない、ClientID または ClientSecret が間違っている、またはプラグインが正しくインストールされていない可能性があります。
OpenClaw バージョンアップグレード後の互換性の問題、または AI モデルの API Key が設定されていない可能性があります。
ネットワークの不安定さ、または DingTalk Stream モードの既知のメッセージ消失問題。
グループファイルや DingTalk ドライブの API には企業認証が必要な場合があり、未認証の組織ではこれらの機能が使用できないことがあります。
Card 関連の権限が不足しているか、messageType の設定が正しくありません。