Synology Chat
Стан: вбудований плагін каналу прямих повідомлень, що використовує webhook Synology Chat. Плагін приймає вхідні повідомлення з вихідних webhook Synology Chat і надсилає відповіді через вхідний webhook Synology Chat.Вбудований плагін
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 на ваш gateway OpenClaw:
- Типово:
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>
- Порожні або відсутні токени блокуються за принципом fail-closed.
Змінні середовища
Для облікового запису за замовчуванням можна використовувати змінні середовища:SYNOLOGY_CHAT_TOKENSYNOLOGY_CHAT_INCOMING_URLSYNOLOGY_NAS_HOSTSYNOLOGY_ALLOWED_USER_IDS(через кому)SYNOLOGY_RATE_LIMITOPENCLAW_BOT_NAME
Політика приватних повідомлень і керування доступом
dmPolicy: "allowlist"— рекомендоване типове значення.allowedUserIdsприймає список (або рядок, розділений комами) ідентифікаторів користувачів Synology.- У режимі
allowlistпорожній списокallowedUserIdsвважається помилкою конфігурації, і маршрут webhook не запускатиметься (використовуйтеdmPolicy: "open"для дозволу всім). dmPolicy: "open"дозволяє будь-якого відправника.dmPolicy: "disabled"блокує приватні повідомлення.- Прив’язка одержувача відповіді типово залишається на стабільному числовому
user_id.channels.synology-chat.dangerouslyAllowNameMatching: true— це аварійний режим сумісності, який знову вмикає пошук за змінним іменем користувача/псевдонімом для доставки відповіді. - Підтвердження прив’язки працюють із:
openclaw pairing list synology-chatopenclaw pairing approve synology-chat <CODE>
Вихідна доставка
Використовуйте числові ідентифікатори користувачів Synology Chat як цілі. Приклади:Кілька облікових записів
Підтримуються кілька облікових записів Synology Chat уchannels.synology-chat.accounts.
Кожен обліковий запис може перевизначати токен, вхідний URL, шлях webhook, політику приватних повідомлень і ліміти.
Сесії прямих повідомлень ізольовані для кожного облікового запису та користувача, тому той самий числовий user_id
у двох різних облікових записах Synology не ділить стан транскрипту.
Для кожного ввімкненого облікового запису задавайте окремий webhookPath. OpenClaw тепер відхиляє однакові точні шляхи
і відмовляється запускати іменовані облікові записи, які лише успадковують спільний шлях webhook у конфігураціях із кількома обліковими записами.
Якщо вам свідомо потрібне успадкування для іменованого облікового запису за старою схемою, установіть
dangerouslyAllowInheritedWebhookPath: true для цього облікового запису або в channels.synology-chat,
але однакові точні шляхи все одно відхиляються за принципом fail-closed. Надавайте перевагу явним шляхам для кожного облікового запису.
Примітки щодо безпеки
- Тримайте
tokenу секреті й замінюйте його, якщо він витік. - Залишайте
allowInsecureSsl: false, якщо тільки ви явно не довіряєте локальному самопідписаному сертифікату NAS. - Вхідні запити webhook перевіряються за токеном і обмежуються за частотою для кожного відправника.
- Перевірки недійсних токенів використовують порівняння секретів у сталий час і блокуються за принципом fail-closed.
- Для production надавайте перевагу
dmPolicy: "allowlist". - Тримайте
dangerouslyAllowNameMatchingвимкненим, якщо вам не потрібна застаріла доставка відповідей на основі імен користувачів. - Тримайте
dangerouslyAllowInheritedWebhookPathвимкненим, якщо ви явно не приймаєте ризик маршрутизації через спільний шлях у конфігурації з кількома обліковими записами.
Усунення несправностей
Missing required fields (token, user_id, text):- у payload вихідного webhook бракує одного з обов’язкових полів
- якщо Synology надсилає токен у заголовках, переконайтеся, що gateway/proxy зберігає ці заголовки
Invalid token:- секрет вихідного webhook не збігається з
channels.synology-chat.token - запит потрапляє не до того облікового запису/шляху webhook
- зворотний проксі видалив заголовок токена до того, як запит досяг OpenClaw
- секрет вихідного webhook не збігається з
Rate limit exceeded:- надто багато спроб із недійсним токеном з того самого джерела можуть тимчасово заблокувати це джерело
- для автентифікованих відправників також діє окреме обмеження частоти повідомлень для кожного користувача
Allowlist is empty. Configure allowedUserIds or use dmPolicy=open.:- увімкнено
dmPolicy="allowlist", але не налаштовано жодного користувача
- увімкнено
User not authorized:- числовий
user_idвідправника відсутній уallowedUserIds
- числовий
Пов’язане
- Огляд каналів — усі підтримувані канали
- Прив’язка — автентифікація приватних повідомлень і сценарій прив’язки
- Групи — поведінка групового чату та керування згадками
- Маршрутизація каналів — маршрутизація сесій для повідомлень
- Безпека — модель доступу та посилення захисту