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