Synology Chat(プラグイン)
ステータス:Synology Chatウェブフックを使用したダイレクトメッセージチャンネルとして、プラグイン経由で対応しています。 プラグインはSynology Chatのアウトゴーイングウェブフックから受信メッセージを受け付け、インカミングウェブフック経由で返信を送信します。
プラグインが必要
Synology Chatはプラグインベースで、デフォルトのコアチャンネルインストールには含まれていません。
ローカルチェックアウトからインストール:
openclaw plugins install ./extensions/synology-chat
詳細:プラグイン
クイックセットアップ
- Synology Chatプラグインをインストールして有効化。
- Synology Chatの連携設定で:
- インカミングウェブフックを作成し、そのURLをコピー。
- シークレットトークンを設定してアウトゴーイングウェブフックを作成。
- アウトゴーイングウェブフックのURLをOpenClaw Gatewayに向ける:
- デフォルトは
https://gateway-host/webhook/synology。 - または
channels.synology-chat.webhookPathでカスタム設定。
- デフォルトは
- OpenClawの
channels.synology-chatを設定。 - Gatewayを再起動し、Synology ChatボットにDMを送信。
最小限の設定:
{
channels: {
"synology-chat": {
enabled: true,
token: "synology-outgoing-token",
incomingUrl: "https://nas.example.com/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=...",
webhookPath: "/webhook/synology",
dmPolicy: "allowlist",
allowedUserIds: ["123456"],
rateLimitPerMinute: 30,
allowInsecureSsl: false,
},
},
}
環境変数
デフォルトアカウントには環境変数が使用可能:
SYNOLOGY_CHAT_TOKENSYNOLOGY_CHAT_INCOMING_URLSYNOLOGY_NAS_HOSTSYNOLOGY_ALLOWED_USER_IDS(カンマ区切り)SYNOLOGY_RATE_LIMITOPENCLAW_BOT_NAME
設定値は環境変数より優先されます。
DMポリシーとアクセス制御
dmPolicy: "allowlist"が推奨デフォルトです。allowedUserIdsはSynologyユーザーIDのリスト(またはカンマ区切りの文字列)を受け付けます。allowlistモードでallowedUserIdsリストが空の場合は設定ミスとみなされ、ウェブフックルートは起動しません(全許可にする場合はdmPolicy: "open"を使用)。dmPolicy: "open"はすべての送信者を許可。dmPolicy: "disabled"はDMをブロック。- ペアリング承認:
openclaw pairing list synology-chatopenclaw pairing approve synology-chat <CODE>
アウトバウンド配信
ターゲットにはSynology Chatの数値ユーザーIDを使用します。
例:
openclaw message send --channel synology-chat --target 123456 --text "Hello from OpenClaw"
openclaw message send --channel synology-chat --target synology-chat:123456 --text "Hello again"
URLベースのファイル配信によるメディア送信にも対応しています。
マルチアカウント
channels.synology-chat.accounts配下で複数のSynology Chatアカウントに対応しています。
各アカウントでトークン、インカミングURL、ウェブフックパス、DMポリシー、制限を上書きできます。
{
channels: {
"synology-chat": {
enabled: true,
accounts: {
default: {
token: "token-a",
incomingUrl: "https://nas-a.example.com/...token=...",
},
alerts: {
token: "token-b",
incomingUrl: "https://nas-b.example.com/...token=...",
webhookPath: "/webhook/synology-alerts",
dmPolicy: "allowlist",
allowedUserIds: ["987654"],
},
},
},
},
}
セキュリティに関する注意
tokenは機密情報として扱い、漏洩した場合はローテーションしてください。- 自己署名のローカルNAS証明書を明示的に信頼する場合を除き、
allowInsecureSsl: falseのままにしてください。 - 受信ウェブフックリクエストはトークン検証とレート制限が適用されます。
- 本番環境では
dmPolicy: "allowlist"を推奨します。