Synology Chat(プラグイン)

ステータス:Synology Chatウェブフックを使用したダイレクトメッセージチャンネルとして、プラグイン経由で対応しています。 プラグインはSynology Chatのアウトゴーイングウェブフックから受信メッセージを受け付け、インカミングウェブフック経由で返信を送信します。

プラグインが必要

Synology Chatはプラグインベースで、デフォルトのコアチャンネルインストールには含まれていません。

ローカルチェックアウトからインストール:

openclaw plugins install ./extensions/synology-chat

詳細:プラグイン

クイックセットアップ

  1. Synology Chatプラグインをインストールして有効化。
  2. Synology Chatの連携設定で:
    • インカミングウェブフックを作成し、そのURLをコピー。
    • シークレットトークンを設定してアウトゴーイングウェブフックを作成。
  3. アウトゴーイングウェブフックのURLをOpenClaw Gatewayに向ける:
    • デフォルトはhttps://gateway-host/webhook/synology
    • またはchannels.synology-chat.webhookPathでカスタム設定。
  4. OpenClawのchannels.synology-chatを設定。
  5. 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_TOKEN
  • SYNOLOGY_CHAT_INCOMING_URL
  • SYNOLOGY_NAS_HOST
  • SYNOLOGY_ALLOWED_USER_IDS(カンマ区切り)
  • SYNOLOGY_RATE_LIMIT
  • OPENCLAW_BOT_NAME

設定値は環境変数より優先されます。

DMポリシーとアクセス制御

  • dmPolicy: "allowlist"が推奨デフォルトです。
  • allowedUserIdsはSynologyユーザーIDのリスト(またはカンマ区切りの文字列)を受け付けます。
  • allowlistモードでallowedUserIdsリストが空の場合は設定ミスとみなされ、ウェブフックルートは起動しません(全許可にする場合はdmPolicy: "open"を使用)。
  • dmPolicy: "open"はすべての送信者を許可。
  • dmPolicy: "disabled"はDMをブロック。
  • ペアリング承認:
    • openclaw pairing list synology-chat
    • openclaw 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"を推奨します。