DingTalk Webhook 送信
DingTalk カスタムロボットを使用して、通知やタスク結果をグループに投稿します。 この送信モードでは、アプリケーションボット、ロングコネクション、 パブリックコールバックサーバー、会話IDは必要ありません。エージェントとの会話には、 代わりに DingTalk アプリケーションボット を使用してください。
ロボットの作成
- 目的の DingTalk グループにカスタムロボットを追加します。
https://oapi.dingtalk.com/robot/send?access_token=...で始まる webhook URL をコピーします。- ロボットのセキュリティ設定を構成します。署名が有効な場合は、署名シークレットもコピーします。キーワードと IP 制限はすべてのメッセージに引き続き適用されます。
webhook URL には認証情報が含まれています。スケジュールタスクのプロンプトや配信ターゲットではなく、シークレットまたは環境参照として保存してください。
チャネルの設定
ワークスペースのチャネル設定に名前付きインスタンスを追加します:
{
"channels": {
"team-notices": {
"type": "dingtalk-webhook",
"webhookUrl": "$DINGTALK_WEBHOOK_URL",
"signingSecret": "$DINGTALK_WEBHOOK_SECRET"
}
}
}Qwen Code の起動に使用される環境で、参照される変数を設定します。ロボットが署名を必要としない場合は signingSecret を省略します。このシークレットはカスタムロボットの署名シークレットであり、アプリケーションの Client Secret ではありません。
そのワークスペースでデーモンを実行します:
qwen serve --channel team-notices1つの名前付きインスタンスは1つの設定されたグループを表します。他のグループには追加のインスタンスを作成します。インスタンスの URL を更新すると、それを参照する将来の配信の宛先が変更されます。
明示的な API 配信
通知および明示的なプロンプト/スケジュール配信は、既存のチャネルターゲット形式を使用します。このアダプターは chat/default を唯一の論理宛先として定義します:
{
"text": "The daily report is ready.",
"delivery": {
"kind": "channel",
"target": {
"channelName": "team-notices",
"type": "chat",
"id": "default"
}
}
}これはワークスペースの通知リクエストボディです。default はアダプターが所有するエイリアスであり、DingTalk の会話 ID ではありません。他の ID やユーザーターゲットは拒否されます。アダプターは任意の要求された宛先を無視することはありません。webhook URL と署名シークレットはチャネル設定に保持されます。
配信の動作
- メッセージを Markdown として送信します。タイトルは最初の行から派生した短いものが使用されます。プレーンテキストも受け付けられます。アダプターは提供された Markdown を保持します(テーブル構文を含む)。レンダリングは DingTalk クライアントによって処理されます。
- メッセージの受信、受信 webhook タスクの実行、チャネルループの有効化は行いません。
- HTTP ステータスと DingTalk のビジネスレスポンスの両方をチェックします。拒否された署名、認証情報、セキュリティルール、レート制限は、サニタイズされたエラーを持つ失敗として扱われます。
- 自動再試行は行いません。タイムアウトにより、リモートの受け入れが不明になる可能性があります。
NO_PROXYバイパスを含むワークスペースのプロキシ設定を使用します。- チャネルが停止したときに送信中のメッセージをキャンセルします。リロード時は更新された保存設定が使用されます。
- 切り詰められた結果をマークする共有配信サイズ保護を保持します。最初のリリースでは、その結果を1つのメッセージとして送信し、DingTalk にサイズ超過コンテンツを拒否させます。拒否は配信失敗として報告されます。アダプターは短縮コピーの送信、メッセージの分割、再試行は行いません。DingTalk の正確な Markdown サイズ制限とその単位は検証されていないため、共有サイズチェックを通過しても配信は保証されません。スケジュールされたレポートは簡潔に保ってください。
- スケジュール配信は、既存のベストエフォート成功最終結果動作を保持します。これにより、失敗/キャンセルアラート、永続的な再試行キュー、添付ファイル、または汎用 webhook ペイロード契約は導入されません。
プラットフォームの要件については、DingTalk の 送信 API 、 メッセージタイプ 、 および セキュリティ設定 を参照してください。