Synology Chat (плагин)

Статус: поддерживается через плагин как канал прямых сообщений на основе вебхуков Synology Chat. Плагин принимает входящие сообщения через исходящие вебхуки Synology Chat и отправляет ответы через входящий вебхук Synology Chat.

Требуется плагин

Synology Chat работает как плагин и не входит в стандартную установку ядра.

Установка из локальной копии:

openclaw plugins install ./extensions/synology-chat

Подробнее: Плагины

Быстрая настройка

  1. Установите и включите плагин Synology Chat.
  2. В интеграциях Synology Chat:
    • Создайте входящий вебхук и скопируйте его URL.
    • Создайте исходящий вебхук с вашим секретным токеном.
  3. Направьте URL исходящего вебхука на ваш шлюз OpenClaw:
    • https://gateway-host/webhook/synology по умолчанию.
    • Или ваш пользовательский channels.synology-chat.webhookPath.
  4. Настройте channels.synology-chat в OpenClaw.
  5. Перезапустите шлюз и отправьте ЛС боту Synology Chat.

Минимальная конфигурация:

{
  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

Значения в конфигурации имеют приоритет над переменными окружения.

Политика ЛС и контроль доступа

  • dmPolicy: "allowlist" — рекомендуемое значение по умолчанию.
  • allowedUserIds принимает список (или строку через запятую) ID пользователей Synology.
  • В режиме allowlist пустой список allowedUserIds трактуется как ошибка конфигурации, и маршрут вебхука не запускается (используйте dmPolicy: "open" для разрешения всем).
  • dmPolicy: "open" разрешает любого отправителя.
  • dmPolicy: "disabled" блокирует ЛС.
  • Подтверждение спаривания:
    • openclaw pairing list synology-chat
    • openclaw pairing approve synology-chat <CODE>

Исходящая доставка

Используйте числовые ID пользователей Synology Chat в качестве целей.

Примеры:

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.

Мульти-аккаунт

Несколько аккаунтов Synology Chat поддерживаются через channels.synology-chat.accounts. Каждый аккаунт может переопределять токен, URL входящего вебхука, путь вебхука, политику ЛС и лимиты.

{
  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 в секрете и меняйте его при утечке.
  • Оставляйте allowInsecureSsl: false, если только вы явно не доверяете самоподписанному сертификату локального NAS.
  • Входящие запросы вебхука проверяются по токену и ограничены по частоте на отправителя.
  • Для продакшена рекомендуется dmPolicy: "allowlist".