Synology Chat (plugin)

Estado: compatible vía plugin como canal de mensajes directos usando webhooks de Synology Chat. El plugin acepta mensajes entrantes de webhooks salientes de Synology Chat y envía respuestas a través de un webhook entrante de Synology Chat.

Plugin requerido

Synology Chat es un plugin y no forma parte de la instalación predeterminada del core.

Instalar desde un checkout local:

openclaw plugins install ./extensions/synology-chat

Detalles: Plugins

Configuración rápida

  1. Instala y habilita el plugin de Synology Chat.
  2. En las integraciones de Synology Chat:
    • Crea un webhook entrante y copia su URL.
    • Crea un webhook saliente con tu token secreto.
  3. Apunta la URL del webhook saliente a tu gateway de OpenClaw:
    • https://gateway-host/webhook/synology de forma predeterminada.
    • O tu channels.synology-chat.webhookPath personalizado.
  4. Configura channels.synology-chat en OpenClaw.
  5. Reinicia el gateway y envía un DM al bot de Synology Chat.

Configuración mínima:

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

Variables de entorno

Para la cuenta predeterminada, puedes usar variables de entorno:

  • SYNOLOGY_CHAT_TOKEN
  • SYNOLOGY_CHAT_INCOMING_URL
  • SYNOLOGY_NAS_HOST
  • SYNOLOGY_ALLOWED_USER_IDS (separados por coma)
  • SYNOLOGY_RATE_LIMIT
  • OPENCLAW_BOT_NAME

Los valores de configuración anulan las variables de entorno.

Política de DM y control de acceso

  • dmPolicy: "allowlist" es el predeterminado recomendado.
  • allowedUserIds acepta una lista (o cadena separada por comas) de IDs de usuario de Synology.
  • En modo allowlist, una lista vacía de allowedUserIds se trata como error de configuración y la ruta del webhook no se iniciará (usa dmPolicy: "open" para permitir todo).
  • dmPolicy: "open" permite cualquier remitente.
  • dmPolicy: "disabled" bloquea los DMs.
  • Las aprobaciones de emparejamiento funcionan con:
    • openclaw pairing list synology-chat
    • openclaw pairing approve synology-chat <CODE>

Entrega saliente

Usa IDs numéricos de usuario de Synology Chat como destinos.

Ejemplos:

openclaw message send --channel synology-chat --target 123456 --text "Hola desde OpenClaw"
openclaw message send --channel synology-chat --target synology-chat:123456 --text "Hola de nuevo"

El envío de multimedia se soporta mediante entrega de archivos por URL.

Multi-cuenta

Múltiples cuentas de Synology Chat son compatibles bajo channels.synology-chat.accounts. Cada cuenta puede anular token, URL entrante, ruta de webhook, política de DM y límites.

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

Notas de seguridad

  • Mantén el token en secreto y rótalo si se filtra.
  • Mantén allowInsecureSsl: false a menos que confíes explícitamente en un certificado autofirmado del NAS local.
  • Las solicitudes de webhook entrantes se verifican por token y tienen límite de velocidad por remitente.
  • Prefiere dmPolicy: "allowlist" para producción.