Developer and self-hosted
Synology Chat
Status: gebündelter Plugin-Direktnachrichtenkanal mit Synology Chat-Webhooks. Das Plugin akzeptiert eingehende Nachrichten von ausgehenden Synology Chat-Webhooks und sendet Antworten über einen eingehenden Synology Chat-Webhook.
Gebündeltes Plugin
Synology Chat wird in aktuellen OpenClaw-Versionen als gebündeltes Plugin ausgeliefert, daher benötigen normale paketierte Builds keine separate Installation.
Wenn Sie einen älteren Build oder eine benutzerdefinierte Installation verwenden, die Synology Chat ausschließt, installieren Sie es manuell:
Installation aus einem lokalen Checkout:
openclaw plugins install ./path/to/local/synology-chat-plugin
Details: Plugins
Schnelle Einrichtung
- Stellen Sie sicher, dass das Synology Chat-Plugin verfügbar ist.
- Aktuelle paketierte OpenClaw-Versionen bündeln es bereits.
- Ältere/benutzerdefinierte Installationen können es mit dem obigen Befehl manuell aus einem Quell-Checkout hinzufügen.
openclaw onboardzeigt Synology Chat jetzt in derselben Kanaleinrichtungsliste wieopenclaw channels add.- Nicht interaktive Einrichtung:
openclaw channels add --channel synology-chat --token <token> --url <incoming-webhook-url>
- In den Synology Chat-Integrationen:
- Erstellen Sie einen eingehenden Webhook und kopieren Sie dessen URL.
- Erstellen Sie einen ausgehenden Webhook mit Ihrem geheimen Token.
- Richten Sie die ausgehende Webhook-URL auf Ihr OpenClaw-Gateway:
- Standardmäßig
https://gateway-host/webhook/synology. - Oder Ihr benutzerdefiniertes
channels.synology-chat.webhookPath.
- Standardmäßig
- Schließen Sie die Einrichtung in OpenClaw ab.
- Geführt:
openclaw onboard - Direkt:
openclaw channels add --channel synology-chat --token <token> --url <incoming-webhook-url>
- Geführt:
- Starten Sie das Gateway neu und senden Sie eine DM an den Synology Chat-Bot.
Details zur Webhook-Authentifizierung:
- OpenClaw akzeptiert das ausgehende Webhook-Token aus
body.token, dann?token=..., dann aus Headern. - Akzeptierte Header-Formen:
x-synology-tokenx-webhook-tokenx-openclaw-tokenAuthorization: Bearer <token>
- Leere oder fehlende Tokens werden sicher abgewiesen.
Minimale Konfiguration:
{
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,
},
},
}
Umgebungsvariablen
Für das Standardkonto können Sie Umgebungsvariablen verwenden:
SYNOLOGY_CHAT_TOKENSYNOLOGY_CHAT_INCOMING_URLSYNOLOGY_NAS_HOSTSYNOLOGY_ALLOWED_USER_IDS(durch Kommas getrennt)SYNOLOGY_RATE_LIMITOPENCLAW_BOT_NAME
Konfigurationswerte überschreiben Umgebungsvariablen.
SYNOLOGY_CHAT_INCOMING_URL kann nicht aus einer Workspace-.env gesetzt werden; siehe Workspace-.env-Dateien.
DM-Richtlinie und Zugriffskontrolle
dmPolicy: "allowlist"ist der empfohlene Standard.allowedUserIdsakzeptiert eine Liste (oder eine durch Kommas getrennte Zeichenfolge) von Synology-Benutzer-IDs.- Im Modus
allowlistwird eine leereallowedUserIds-Liste als Fehlkonfiguration behandelt und die Webhook-Route startet nicht (verwenden SiedmPolicy: "open"mitallowedUserIds: ["*"]für Alles-erlauben). dmPolicy: "open"erlaubt öffentliche DMs nur, wennallowedUserIds"*"enthält; bei restriktiven Einträgen können nur passende Benutzer chatten.dmPolicy: "disabled"blockiert DMs.- Die Antwortempfänger-Bindung bleibt standardmäßig auf der stabilen numerischen
user_id.channels.synology-chat.dangerouslyAllowNameMatching: trueist ein Notfall-Kompatibilitätsmodus, der die veränderliche Suche nach Benutzername/Nickname für die Antwortzustellung wieder aktiviert. - Pairing-Freigaben funktionieren mit:
openclaw pairing list synology-chatopenclaw pairing approve synology-chat <CODE>
Ausgehende Zustellung
Verwenden Sie numerische Synology Chat-Benutzer-IDs als Ziele.
Beispiele:
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"
Mediensendungen werden über URL-basierte Dateizustellung unterstützt.
Ausgehende Datei-URLs müssen http oder https verwenden, und private oder anderweitig blockierte Netzwerkziele werden abgewiesen, bevor OpenClaw die URL an den NAS-Webhook weiterleitet.
Mehrere Konten
Mehrere Synology Chat-Konten werden unter channels.synology-chat.accounts unterstützt.
Jedes Konto kann Token, eingehende URL, Webhook-Pfad, DM-Richtlinie und Limits überschreiben.
Direktnachrichten-Sitzungen sind pro Konto und Benutzer isoliert, sodass dieselbe numerische user_id
auf zwei verschiedenen Synology-Konten keinen Transkriptstatus teilt.
Geben Sie jedem aktivierten Konto einen eigenen webhookPath. OpenClaw weist jetzt exakt doppelte Pfade zurück
und verweigert den Start benannter Konten, die in Mehrkonten-Einrichtungen nur einen gemeinsam genutzten Webhook-Pfad erben.
Wenn Sie für ein benanntes Konto bewusst Legacy-Vererbung benötigen, setzen Sie
dangerouslyAllowInheritedWebhookPath: true auf diesem Konto oder unter channels.synology-chat,
aber exakt doppelte Pfade werden weiterhin sicher abgewiesen. Bevorzugen Sie explizite kontospezifische Pfade.
{
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"],
},
},
},
},
}
Sicherheitshinweise
- Halten Sie
tokengeheim und rotieren Sie es, falls es offengelegt wurde. - Behalten Sie
allowInsecureSsl: falsebei, sofern Sie nicht ausdrücklich einem selbstsignierten lokalen NAS-Zertifikat vertrauen. - Eingehende Webhook-Anfragen werden per Token verifiziert und pro Absender ratenbegrenzt.
- Prüfungen ungültiger Tokens verwenden einen zeitkonstanten Geheimnisvergleich und werden sicher abgewiesen.
- Bevorzugen Sie
dmPolicy: "allowlist"für die Produktion. - Lassen Sie
dangerouslyAllowNameMatchingdeaktiviert, sofern Sie nicht ausdrücklich Legacy-Zustellung von Antworten anhand von Benutzernamen benötigen. - Lassen Sie
dangerouslyAllowInheritedWebhookPathdeaktiviert, sofern Sie nicht ausdrücklich das Routingrisiko gemeinsam genutzter Pfade in einer Mehrkonten-Einrichtung akzeptieren.
Fehlerbehebung
Missing required fields (token, user_id, text):- der ausgehende Webhook-Payload enthält eines der erforderlichen Felder nicht
- wenn Synology das Token in Headern sendet, stellen Sie sicher, dass Gateway/Proxy diese Header beibehält
Invalid token:- das ausgehende Webhook-Geheimnis stimmt nicht mit
channels.synology-chat.tokenüberein - die Anfrage trifft das falsche Konto/den falschen Webhook-Pfad
- ein Reverse-Proxy hat den Token-Header entfernt, bevor die Anfrage OpenClaw erreicht hat
- das ausgehende Webhook-Geheimnis stimmt nicht mit
Rate limit exceeded:- zu viele Versuche mit ungültigem Token aus derselben Quelle können diese Quelle vorübergehend aussperren
- authentifizierte Absender haben außerdem ein separates nach Benutzer begrenztes Nachrichtenratenlimit
Allowlist is empty. Configure allowedUserIds or use dmPolicy=open with allowedUserIds=["*"].:dmPolicy="allowlist"ist aktiviert, aber es sind keine Benutzer konfiguriert
User not authorized:- die numerische
user_iddes Absenders befindet sich nicht inallowedUserIds
- die numerische
Verwandte Themen
- Kanalübersicht — alle unterstützten Kanäle
- Pairing — DM-Authentifizierung und Pairing-Ablauf
- Gruppen — Gruppenchat-Verhalten und Mention-Gating
- Kanalrouting — Sitzungsrouting für Nachrichten
- Sicherheit — Zugriffsmodell und Härtung