Установлення
Швидке налаштування
- Установіть Plugin (див. вище).
- В інтеграціях Synology Chat:
- Створіть вхідний Webhook і скопіюйте його URL-адресу.
- Створіть вихідний Webhook із вашим секретним токеном.
- Спрямуйте URL-адресу вихідного Webhook на ваш OpenClaw Gateway:
- Типово:
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 приймає токен вихідного Webhook спочатку з
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вважається помилковою конфігурацією, і маршрут Webhook не запускається. 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-адресу до Webhook NAS.
Кілька облікових записів
Уchannels.synology-chat.accounts підтримується кілька облікових записів Synology Chat.
Кожен обліковий запис може перевизначати токен, URL-адресу вхідного Webhook, шлях Webhook, політику прямих повідомлень і обмеження.
Сеанси прямих повідомлень ізольовані для кожного облікового запису й користувача, тому однаковий числовий user_id
у двох різних облікових записах Synology не використовує спільний стан історії повідомлень.
Призначте кожному ввімкненому обліковому запису окремий webhookPath. OpenClaw відхиляє повністю однакові шляхи
та не запускає іменовані облікові записи, які в конфігурації з кількома обліковими записами лише успадковують спільний шлях Webhook.
Якщо іменованому обліковому запису навмисно потрібне успадкування для сумісності зі старою поведінкою, установіть
dangerouslyAllowInheritedWebhookPath: true для цього облікового запису або в channels.synology-chat,
але повністю однакові шляхи однаково відхиляються з безпечною відмовою. Надавайте перевагу явним шляхам для кожного облікового запису.
Примітки щодо безпеки
- Зберігайте
tokenу таємниці та змініть його в разі витоку. - Залишайте
allowInsecureSsl: false, якщо ви явно не довіряєте самопідписаному локальному сертифікату NAS. - Запити вхідного Webhook перевіряються за токеном і обмежуються за частотою для кожного відправника (
rateLimitPerMinute, за замовчуванням 30). - Перевірки недійсних токенів використовують порівняння секретів за сталий час і завершуються безпечною відмовою; повторні спроби з недійсним токеном тимчасово блокують вихідну IP-адресу.
- Текст вхідного повідомлення очищується від відомих шаблонів ін’єкції підказок і скорочується до 4000 символів.
- Для робочого середовища надавайте перевагу
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
- числового
Пов’язані матеріали
- Огляд каналів — усі підтримувані канали
- Групи — поведінка групових чатів і обмеження за згадками
- Маршрутизація каналів — маршрутизація сеансів для повідомлень
- Безпека — модель доступу та посилення захисту