Synology Chat (plugin)

Stato: supportato via plugin come canale per messaggi diretti usando i webhook di Synology Chat. Il plugin accetta messaggi in ingresso dai webhook in uscita di Synology Chat e invia risposte attraverso un webhook in entrata di Synology Chat.

Plugin necessario

Synology Chat e basato su plugin e non fa parte dell’installazione core predefinita.

Installa da checkout locale:

openclaw plugins install ./extensions/synology-chat

Dettagli: Plugin

Setup rapido

  1. Installa e abilita il plugin Synology Chat.
  2. Nelle integrazioni di Synology Chat:
    • Crea un webhook in entrata e copia il suo URL.
    • Crea un webhook in uscita con il tuo token segreto.
  3. Punta l’URL del webhook in uscita verso il tuo gateway OpenClaw:
    • https://gateway-host/webhook/synology per impostazione predefinita.
    • Oppure il tuo channels.synology-chat.webhookPath personalizzato.
  4. Configura channels.synology-chat in OpenClaw.
  5. Riavvia il gateway e invia un DM al bot Synology Chat.

Configurazione minimale:

{
  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,
    },
  },
}

Variabili d’ambiente

Per l’account predefinito, puoi usare le variabili d’ambiente:

  • SYNOLOGY_CHAT_TOKEN
  • SYNOLOGY_CHAT_INCOMING_URL
  • SYNOLOGY_NAS_HOST
  • SYNOLOGY_ALLOWED_USER_IDS (separati da virgola)
  • SYNOLOGY_RATE_LIMIT
  • OPENCLAW_BOT_NAME

I valori nel config hanno precedenza sulle variabili d’ambiente.

Policy DM e controllo degli accessi

  • dmPolicy: "allowlist" e il valore predefinito consigliato.
  • allowedUserIds accetta una lista (o stringa separata da virgola) di ID utente Synology.
  • In modalita allowlist, una lista allowedUserIds vuota viene trattata come configurazione errata e la route webhook non si avvia (usa dmPolicy: "open" per consentire tutti).
  • dmPolicy: "open" consente qualsiasi mittente.
  • dmPolicy: "disabled" blocca i DM.
  • Le approvazioni di pairing funzionano con:
    • openclaw pairing list synology-chat
    • openclaw pairing approve synology-chat <CODE>

Consegna in uscita

Usa ID utente numerici di Synology Chat come target.

Esempi:

openclaw message send --channel synology-chat --target 123456 --text "Ciao da OpenClaw"
openclaw message send --channel synology-chat --target synology-chat:123456 --text "Ciao ancora"

L’invio di media e supportato tramite consegna file basata su URL.

Multi-account

Sono supportati piu account Synology Chat sotto channels.synology-chat.accounts. Ogni account puo sovrascrivere token, URL in entrata, percorso webhook, policy DM e limiti.

{
  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"],
        },
      },
    },
  },
}

Note sulla sicurezza

  • Mantieni il token segreto e ruotalo se viene esposto.
  • Mantieni allowInsecureSsl: false a meno che tu non ti fidi esplicitamente di un certificato self-signed del NAS locale.
  • Le richieste webhook in ingresso sono verificate tramite token e rate-limited per mittente.
  • Preferisci dmPolicy: "allowlist" per la produzione.