Developer and self-hosted
Synology Chat
Status: gebundeld Plugin voor direct-message-kanaal dat Synology Chat-webhooks gebruikt. De Plugin accepteert inkomende berichten van uitgaande webhooks van Synology Chat en verstuurt antwoorden via een inkomende webhook van Synology Chat.
Gebundelde Plugin
Synology Chat wordt meegeleverd als gebundelde Plugin in huidige OpenClaw-releases, dus normale pakketbuilds hebben geen aparte installatie nodig.
Als je een oudere build gebruikt of een aangepaste installatie waarin Synology Chat is uitgesloten, installeer deze dan handmatig:
Installeren vanuit een lokale checkout:
openclaw plugins install ./path/to/local/synology-chat-plugin
Details: Plugins
Snelle installatie
- Zorg dat de Synology Chat-Plugin beschikbaar is.
- Huidige pakketversies van OpenClaw leveren deze al mee.
- Oudere/aangepaste installaties kunnen deze handmatig toevoegen vanuit een source-checkout met de bovenstaande opdracht.
openclaw onboardtoont Synology Chat nu in dezelfde lijst voor kanaalinstellingen alsopenclaw channels add.- Niet-interactieve installatie:
openclaw channels add --channel synology-chat --token <token> --url <incoming-webhook-url>
- In Synology Chat-integraties:
- Maak een inkomende webhook en kopieer de URL.
- Maak een uitgaande webhook met je geheime token.
- Laat de URL van de uitgaande webhook naar je OpenClaw-Gateway wijzen:
https://gateway-host/webhook/synologystandaard.- Of je aangepaste
channels.synology-chat.webhookPath.
- Rond de installatie af in OpenClaw.
- Begeleid:
openclaw onboard - Direct:
openclaw channels add --channel synology-chat --token <token> --url <incoming-webhook-url>
- Begeleid:
- Herstart de Gateway en stuur een DM naar de Synology Chat-bot.
Details voor webhook-authenticatie:
- OpenClaw accepteert het token van de uitgaande webhook uit
body.token, daarna?token=..., en daarna headers. - Geaccepteerde headervormen:
x-synology-tokenx-webhook-tokenx-openclaw-tokenAuthorization: Bearer <token>
- Lege of ontbrekende tokens falen gesloten.
Minimale configuratie:
{
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,
},
},
}
Omgevingsvariabelen
Voor het standaardaccount kun je env vars gebruiken:
SYNOLOGY_CHAT_TOKENSYNOLOGY_CHAT_INCOMING_URLSYNOLOGY_NAS_HOSTSYNOLOGY_ALLOWED_USER_IDS(komma-gescheiden)SYNOLOGY_RATE_LIMITOPENCLAW_BOT_NAME
Configuratiewaarden overschrijven env vars.
SYNOLOGY_CHAT_INCOMING_URL kan niet worden ingesteld vanuit een workspace-.env; zie Workspace-.env-bestanden.
DM-beleid en toegangscontrole
dmPolicy: "allowlist"is de aanbevolen standaard.allowedUserIdsaccepteert een lijst (of komma-gescheiden string) van Synology-gebruikers-ID's.- In de modus
allowlistwordt een lege lijstallowedUserIdsals misconfiguratie behandeld en zal de webhookroute niet starten (gebruikdmPolicy: "open"metallowedUserIds: ["*"]om iedereen toe te staan). dmPolicy: "open"staat publieke DM's alleen toe wanneerallowedUserIds"*"bevat; met beperkende vermeldingen kunnen alleen overeenkomende gebruikers chatten.dmPolicy: "disabled"blokkeert DM's.- Koppeling van antwoordontvangers blijft standaard gebaseerd op stabiele numerieke
user_id.channels.synology-chat.dangerouslyAllowNameMatching: trueis een break-glass-compatibiliteitsmodus die opzoeking via veranderbare gebruikersnaam/bijnaam opnieuw inschakelt voor antwoordbezorging. - Koppelingsgoedkeuringen werken met:
openclaw pairing list synology-chatopenclaw pairing approve synology-chat <CODE>
Uitgaande bezorging
Gebruik numerieke Synology Chat-gebruikers-ID's als doelen.
Voorbeelden:
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"
openclaw message send --channel synology-chat --target synology:123456 --text "Short prefix"
Mediaverzendingen worden ondersteund via bestandsbezorging op basis van URL's.
Uitgaande bestands-URL's moeten http of https gebruiken, en privé- of anderszins geblokkeerde netwerkdoelen worden geweigerd voordat OpenClaw de URL doorstuurt naar de NAS-webhook.
Meerdere accounts
Meerdere Synology Chat-accounts worden ondersteund onder channels.synology-chat.accounts.
Elk account kan token, inkomende URL, webhookpad, DM-beleid en limieten overschrijven.
Direct-message-sessies zijn per account en gebruiker geïsoleerd, zodat dezelfde numerieke user_id
op twee verschillende Synology-accounts geen transcriptiestatus deelt.
Geef elk ingeschakeld account een eigen webhookPath. OpenClaw weigert nu dubbele exacte paden
en weigert genoemde accounts te starten die in configuraties met meerdere accounts alleen een gedeeld webhookpad erven.
Als je bewust verouderde overerving nodig hebt voor een genoemd account, stel dan
dangerouslyAllowInheritedWebhookPath: true in op dat account of bij channels.synology-chat,
maar dubbele exacte paden worden nog steeds fail-closed geweigerd. Geef de voorkeur aan expliciete paden per account.
{
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"],
},
},
},
},
}
Beveiligingsnotities
- Houd
tokengeheim en roteer het als het is gelekt. - Houd
allowInsecureSsl: falsetenzij je expliciet een zelfondertekend lokaal NAS-certificaat vertrouwt. - Inkomende webhookverzoeken worden per afzender met token geverifieerd en aan snelheidslimieten onderworpen.
- Controles op ongeldige tokens gebruiken constante-tijd geheime vergelijking en falen gesloten.
- Geef voor productie de voorkeur aan
dmPolicy: "allowlist". - Houd
dangerouslyAllowNameMatchinguitgeschakeld tenzij je expliciet verouderde antwoordbezorging op basis van gebruikersnaam nodig hebt. - Houd
dangerouslyAllowInheritedWebhookPathuitgeschakeld tenzij je expliciet het routeringsrisico van gedeelde paden accepteert in een configuratie met meerdere accounts.
Probleemoplossing
Missing required fields (token, user_id, text):- de payload van de uitgaande webhook mist een van de vereiste velden
- als Synology het token in headers verstuurt, zorg er dan voor dat de Gateway/proxy die headers behoudt
Invalid token:- het geheim van de uitgaande webhook komt niet overeen met
channels.synology-chat.token - het verzoek komt terecht bij het verkeerde account/webhookpad
- een reverse proxy heeft de tokenheader verwijderd voordat het verzoek OpenClaw bereikte
- het geheim van de uitgaande webhook komt niet overeen met
Rate limit exceeded:- te veel pogingen met ongeldige tokens vanaf dezelfde bron kunnen die bron tijdelijk buitensluiten
- geauthenticeerde afzenders hebben ook een aparte berichtsnelheidslimiet per gebruiker
Allowlist is empty. Configure allowedUserIds or use dmPolicy=open with allowedUserIds=["*"].:dmPolicy="allowlist"is ingeschakeld maar er zijn geen gebruikers geconfigureerd
User not authorized:- de numerieke
user_idvan de afzender staat niet inallowedUserIds
- de numerieke
Gerelateerd
- Kanalenoverzicht — alle ondersteunde kanalen
- Koppelen — DM-authenticatie en koppelingsflow
- Groepen — gedrag van groepschats en gating voor vermeldingen
- Kanaalroutering — sessieroutering voor berichten
- Beveiliging — toegangsmodel en hardening