Установка
Быстрая настройка
- Установите плагин (см. выше).
- В интеграциях Synology Chat:
- Создайте входящий вебхук и скопируйте его URL.
- Создайте исходящий вебхук с вашим секретным токеном.
- Укажите для исходящего вебхука URL вашего Gateway OpenClaw:
https://gateway-host/webhook/synologyпо умолчанию.- Либо ваш собственный
channels.synology-chat.webhookPath.
- Завершите настройку в OpenClaw. Synology Chat отображается в одном и том же списке настройки каналов в обоих сценариях:
- Пошаговый:
openclaw onboardилиopenclaw channels add - Прямой:
openclaw channels add --channel synology-chat --token <token> --url <incoming-webhook-url>
- Пошаговый:
- Перезапустите Gateway и отправьте личное сообщение боту Synology Chat.
- OpenClaw принимает токен исходящего вебхука сначала из
body.token, затем из?token=..., а затем из заголовков. - Допустимые варианты заголовков:
x-synology-tokenx-webhook-tokenx-openclaw-tokenAuthorization: Bearer <token>
- При пустом или отсутствующем токене запрос отклоняется.
- Полезная нагрузка может иметь формат
application/x-www-form-urlencodedилиapplication/json; обязательныtoken,user_idиtext.
Переменные среды
Для учётной записи по умолчанию можно использовать переменные среды:SYNOLOGY_CHAT_TOKENSYNOLOGY_CHAT_INCOMING_URLSYNOLOGY_NAS_HOSTSYNOLOGY_ALLOWED_USER_IDS(через запятую)SYNOLOGY_RATE_LIMITOPENCLAW_BOT_NAME
SYNOLOGY_CHAT_INCOMING_URL и SYNOLOGY_NAS_HOST нельзя задать из файла .env рабочей области; см. Файлы .env рабочей области.
Политика личных сообщений и управление доступом
- Поддерживаемые значения
dmPolicy:allowlist(по умолчанию),openиdisabled. В Synology Chat нет процедуры сопряжения; разрешите отправителей, добавив их числовые идентификаторы пользователей Synology вallowedUserIds. allowedUserIdsпринимает список (или строку со значениями через запятую) идентификаторов пользователей Synology.- В режиме
allowlistпустой списокallowedUserIdsсчитается ошибкой конфигурации, и маршрут вебхука не запускается. dmPolicy: "open"разрешает общедоступные личные сообщения, только еслиallowedUserIdsсодержит"*"; при наличии ограничивающих записей общаться могут только соответствующие им пользователи. Приopenс пустым спискомallowedUserIdsмаршрут также не запускается.dmPolicy: "disabled"блокирует личные сообщения.- По умолчанию получатель ответа привязывается к стабильному числовому
user_id.channels.synology-chat.dangerouslyAllowNameMatching: true— аварийный режим совместимости, который повторно включает поиск по изменяемому имени пользователя или псевдониму для доставки ответов.
Исходящая доставка
Используйте в качестве адресатов числовые идентификаторы пользователей Synology Chat. Поддерживаются префиксыsynology-chat:, synology_chat: и synology:.
Примеры:
http или https, а частные или иным образом заблокированные сетевые адресаты отклоняются до того, как OpenClaw передаст URL вебхуку NAS.
Несколько учётных записей
Вchannels.synology-chat.accounts поддерживается несколько учётных записей Synology Chat.
Каждая учётная запись может переопределять токен, URL входящего вебхука, путь вебхука, политику личных сообщений и ограничения.
Сеансы личных сообщений изолированы по учётным записям и пользователям, поэтому один и тот же числовой user_id
в двух разных учётных записях Synology не использует общее состояние истории сообщений.
Назначьте каждой включённой учётной записи уникальный webhookPath. OpenClaw отклоняет полностью совпадающие пути
и не запускает именованные учётные записи, которые в конфигурациях с несколькими учётными записями лишь наследуют общий путь вебхука.
Если для именованной учётной записи намеренно требуется устаревшее наследование, задайте
dangerouslyAllowInheritedWebhookPath: true в этой учётной записи или в channels.synology-chat,
однако полностью совпадающие пути по-прежнему отклоняются. Предпочтительно явно задавать отдельные пути для каждой учётной записи.
Примечания по безопасности
- Храните
tokenв секрете и смените его в случае утечки. - Не изменяйте
allowInsecureSsl: false, если только вы явно не доверяете самоподписанному сертификату локального NAS. - Запросы входящего вебхука проверяются по токену, а их частота ограничивается отдельно для каждого отправителя (
rateLimitPerMinute, по умолчанию 30). - Проверки недействительных токенов используют сравнение секретов за постоянное время и отклоняют запросы; повторные попытки с недействительным токеном временно блокируют исходный IP-адрес.
- Текст входящих сообщений очищается от известных шаблонов инъекций в промпты и обрезается до 4000 символов.
- Для рабочей среды предпочтительно использовать
dmPolicy: "allowlist". - Не включайте
dangerouslyAllowNameMatching, если вам явно не требуется устаревшая доставка ответов по имени пользователя. - Не включайте
dangerouslyAllowInheritedWebhookPath, если вы явно не принимаете риск маршрутизации по общему пути в конфигурации с несколькими учётными записями.
Устранение неполадок
Missing required fields (token, user_id, text):- в полезной нагрузке исходящего вебхука отсутствует одно из обязательных полей
- если Synology отправляет токен в заголовках, убедитесь, что Gateway или прокси сохраняет эти заголовки
Invalid token:- секрет исходящего вебхука не соответствует
channels.synology-chat.token - запрос поступает на неверный путь учётной записи или вебхука
- обратный прокси удалил заголовок токена до того, как запрос достиг OpenClaw
- секрет исходящего вебхука не соответствует
Rate limit exceeded:- слишком много попыток с недействительным токеном из одного источника могут временно заблокировать этот источник
- для аутентифицированных отправителей также действует отдельное ограничение частоты сообщений для каждого пользователя
Allowlist is empty. Configure allowedUserIds or use dmPolicy=open with allowedUserIds=["*"].:dmPolicy="allowlist"включён, но пользователи не настроены
User not authorized:- числовой
user_idотправителя отсутствует вallowedUserIds
- числовой
Связанные материалы
- Обзор каналов — все поддерживаемые каналы
- Группы — поведение групповых чатов и фильтрация по упоминаниям
- Маршрутизация каналов — маршрутизация сеансов для сообщений
- Безопасность — модель доступа и усиление защиты