Nextcloud Talk (plugin)

Estado: compatible vía plugin (bot de webhook). Mensajes directos, salas, reacciones y mensajes en Markdown son compatibles.

Plugin requerido

Nextcloud Talk se distribuye como plugin y no viene incluido en la instalación base.

Instalar vía CLI (registro npm):

openclaw plugins install @openclaw/nextcloud-talk

Checkout local (cuando se ejecuta desde un repositorio git):

openclaw plugins install ./extensions/nextcloud-talk

Si eliges Nextcloud Talk durante la configuración/onboarding y se detecta un checkout de git, OpenClaw ofrecerá la ruta de instalación local automáticamente.

Detalles: Plugins

Configuración rápida (principiante)

  1. Instala el plugin de Nextcloud Talk.

  2. En tu servidor Nextcloud, crea un bot:

    ./occ talk:bot:install "OpenClaw" "<shared-secret>" "<webhook-url>" --feature reaction
  3. Habilita el bot en los ajustes de la sala objetivo.

  4. Configura OpenClaw:

    • Configuración: channels.nextcloud-talk.baseUrl + channels.nextcloud-talk.botSecret
    • O variable de entorno: NEXTCLOUD_TALK_BOT_SECRET (solo cuenta predeterminada)
  5. Reinicia el gateway (o termina el onboarding).

Configuración mínima:

{
  channels: {
    "nextcloud-talk": {
      enabled: true,
      baseUrl: "https://cloud.example.com",
      botSecret: "shared-secret",
      dmPolicy: "pairing",
    },
  },
}

Notas

  • Los bots no pueden iniciar DMs. El usuario debe enviar un mensaje al bot primero.
  • La URL del webhook debe ser accesible por el Gateway; configura webhookPublicUrl si está detrás de un proxy.
  • La subida de multimedia no es compatible con la API de bot; los archivos se envían como URLs.
  • El payload del webhook no distingue entre DMs y salas; configura apiUser + apiPassword para habilitar la detección del tipo de sala (de lo contrario, los DMs se tratan como salas).

Control de acceso (DMs)

  • Predeterminado: channels.nextcloud-talk.dmPolicy = "pairing". Los remitentes desconocidos reciben un código de emparejamiento.
  • Aprobar vía:
    • openclaw pairing list nextcloud-talk
    • openclaw pairing approve nextcloud-talk <CODE>
  • DMs públicos: channels.nextcloud-talk.dmPolicy="open" más channels.nextcloud-talk.allowFrom=["*"].
  • allowFrom solo acepta IDs de usuario de Nextcloud; los nombres para mostrar se ignoran.

Salas (grupos)

  • Predeterminado: channels.nextcloud-talk.groupPolicy = "allowlist" (restricción por mención).
  • Configura la lista de acceso de salas con channels.nextcloud-talk.rooms:
{
  channels: {
    "nextcloud-talk": {
      rooms: {
        "room-token": { requireMention: true },
      },
    },
  },
}
  • Para no permitir ninguna sala, mantén la lista de acceso vacía o configura channels.nextcloud-talk.groupPolicy="disabled".

Capacidades

CaracterísticaEstado
Mensajes directosSoportado
SalasSoportado
HilosNo soportado
MultimediaSolo URL
ReaccionesSoportado
Comandos nativosNo soportado

Referencia de configuración (Nextcloud Talk)

Configuración completa: Configuración

Opciones del proveedor:

  • channels.nextcloud-talk.enabled: habilitar/deshabilitar inicio del canal.
  • channels.nextcloud-talk.baseUrl: URL de la instancia de Nextcloud.
  • channels.nextcloud-talk.botSecret: secreto compartido del bot.
  • channels.nextcloud-talk.botSecretFile: ruta del archivo del secreto. Los symlinks se rechazan.
  • channels.nextcloud-talk.apiUser: usuario API para búsqueda de salas (detección de DM).
  • channels.nextcloud-talk.apiPassword: contraseña API/app para búsqueda de salas.
  • channels.nextcloud-talk.apiPasswordFile: ruta del archivo de contraseña API.
  • channels.nextcloud-talk.webhookPort: puerto del listener de webhook (predeterminado: 8788).
  • channels.nextcloud-talk.webhookHost: host del webhook (predeterminado: 0.0.0.0).
  • channels.nextcloud-talk.webhookPath: ruta del webhook (predeterminado: /nextcloud-talk-webhook).
  • channels.nextcloud-talk.webhookPublicUrl: URL del webhook accesible externamente.
  • channels.nextcloud-talk.dmPolicy: pairing | allowlist | open | disabled.
  • channels.nextcloud-talk.allowFrom: lista de acceso de DM (IDs de usuario). open requiere "*".
  • channels.nextcloud-talk.groupPolicy: allowlist | open | disabled.
  • channels.nextcloud-talk.groupAllowFrom: lista de acceso de grupo (IDs de usuario).
  • channels.nextcloud-talk.rooms: configuración por sala y lista de acceso.
  • channels.nextcloud-talk.historyLimit: límite de historial de grupo (0 deshabilita).
  • channels.nextcloud-talk.dmHistoryLimit: límite de historial de DM (0 deshabilita).
  • channels.nextcloud-talk.dms: anulaciones por DM (historyLimit).
  • channels.nextcloud-talk.textChunkLimit: tamaño de fragmento de texto saliente (caracteres).
  • channels.nextcloud-talk.chunkMode: length (predeterminado) o newline para dividir en líneas en blanco (límites de párrafo) antes del fragmentado por longitud.
  • channels.nextcloud-talk.blockStreaming: deshabilitar block streaming para este canal.
  • channels.nextcloud-talk.blockStreamingCoalesce: ajuste de coalescencia de block streaming.
  • channels.nextcloud-talk.mediaMaxMb: límite de multimedia entrante (MB).