@openclaw/nextcloud-talk) que conecta OpenClaw con una instancia de Nextcloud autoalojada mediante un bot Webhook de Talk. Se admiten mensajes directos, salas, reacciones y mensajes en Markdown; los archivos multimedia se envían como URL.
Instalación
Configuración rápida (principiantes)
- Instale el plugin (consulte la sección anterior).
-
En el servidor Nextcloud, cree un bot:
Mantenga
--feature response: sin esta opción, las respuestas salientes fallan con el código 401. Repare un bot existente con./occ talk:bot:state --feature webhook --feature response --feature reaction <botId> 1. - Active el bot en la configuración de la sala de destino.
-
Configure OpenClaw:
- Configuración:
channels.nextcloud-talk.baseUrl+channels.nextcloud-talk.botSecret - O mediante variables de entorno:
NEXTCLOUD_TALK_BOT_SECRET(solo para la cuenta predeterminada)
--url/--tokenson alias de los campos explícitos;nc-talkyncfuncionan como alias del canal):Campos explícitos equivalentes:Secreto almacenado en un archivo: - Configuración:
- Reinicie el Gateway (o finalice la configuración).
Notas
- Los bots no pueden iniciar mensajes directos. El usuario debe enviar primero un mensaje al bot.
- La URL del Webhook debe ser accesible desde el servidor Nextcloud; establezca
webhookPublicUrlcuando el Gateway se encuentre detrás de un proxy. Las solicitudes del Webhook se firman mediante HMAC-SHA256 con el secreto del bot; las firmas no válidas se rechazan y se someten a limitación de frecuencia. - La API del bot no admite la carga de archivos multimedia; los archivos multimedia salientes se añaden como una línea
Attachment: <url>. - La carga útil del Webhook no distingue los mensajes directos de las salas; establezca
apiUser+apiPasswordpara activar las consultas del tipo de sala (se almacenan en caché durante unos 5 minutos). Sin estas opciones, todas las conversaciones se tratan como salas. - Las solicitudes salientes pasan por la protección contra SSRF. Para un host Nextcloud situado en una red privada o interna de confianza, habilítelo con
channels.nextcloud-talk.network.dangerouslyAllowPrivateNetwork: true. - Cuando se establecen
apiUser/apiPasswordywebhookPublicUrl,openclaw channels statuscomprueba el bot y advierte si falta la funciónresponse.
Control de acceso (mensajes directos)
- Valor predeterminado:
channels.nextcloud-talk.dmPolicy = "pairing". Los remitentes desconocidos reciben un código de emparejamiento. - Apruebe mediante:
openclaw pairing list nextcloud-talkopenclaw pairing approve nextcloud-talk <CODE>
- Mensajes directos públicos:
channels.nextcloud-talk.dmPolicy="open"junto conchannels.nextcloud-talk.allowFrom=["*"]. allowFromsolo coincide con identificadores de usuario de Nextcloud (en minúsculas); los nombres para mostrar se ignoran.
Salas (grupos)
- Valor predeterminado:
channels.nextcloud-talk.groupPolicy = "allowlist"(requiere una mención). - Añada salas a la lista de permitidas con
channels.nextcloud-talk.rooms, usando el token de la sala como clave;"*"establece un valor predeterminado comodín:
- Claves por sala:
requireMention(valor predeterminado: true),enabled(false desactiva la sala),allowFrom(lista de remitentes permitidos por sala),tools(anulaciones de herramientas para permitir o denegar),skills(limita las Skills cargadas),systemPrompt. - Para no permitir ninguna sala, mantenga vacía la lista de permitidas o establezca
channels.nextcloud-talk.groupPolicy="disabled".
Capacidades
Referencia de configuración (Nextcloud Talk)
Configuración completa: Configuración Opciones del proveedor:channels.nextcloud-talk.enabled: activa o desactiva el inicio del canal.channels.nextcloud-talk.baseUrl: URL de la instancia de Nextcloud.channels.nextcloud-talk.botSecret: secreto compartido del bot (cadena o referencia a un secreto).channels.nextcloud-talk.botSecretFile: ruta del secreto en un archivo normal. Se rechazan los enlaces simbólicos.channels.nextcloud-talk.apiUser: usuario de la API para consultar salas (detección de mensajes directos) y comprobar el estado.channels.nextcloud-talk.apiPassword: contraseña de la API o de la aplicación para consultar salas.channels.nextcloud-talk.apiPasswordFile: ruta del archivo de la contraseña de la API.channels.nextcloud-talk.webhookPort: puerto del receptor del Webhook (valor predeterminado: 8788).channels.nextcloud-talk.webhookHost: host del Webhook (valor predeterminado: 0.0.0.0).channels.nextcloud-talk.webhookPath: ruta del Webhook (valor predeterminado: /nextcloud-talk-webhook).channels.nextcloud-talk.webhookPublicUrl: URL del Webhook accesible externamente.channels.nextcloud-talk.dmPolicy:pairing | allowlist | open | disabled(valor predeterminado: pairing).openrequiereallowFrom=["*"].channels.nextcloud-talk.allowFrom: lista de mensajes directos permitidos (identificadores de usuario).channels.nextcloud-talk.groupPolicy:allowlist | open | disabled(valor predeterminado: allowlist).channels.nextcloud-talk.groupAllowFrom: lista de remitentes permitidos en las salas (identificadores de usuario); recurre aallowFromsi no se establece.channels.nextcloud-talk.rooms: configuración y lista de permitidos por sala (consulte la sección anterior).- Se puede hacer referencia a grupos estáticos de acceso de remitentes desde
allowFromygroupAllowFrommedianteaccessGroup:<name>. channels.nextcloud-talk.historyLimit: límite del historial de grupos (0 lo desactiva).channels.nextcloud-talk.dmHistoryLimit: límite del historial de mensajes directos (0 lo desactiva).channels.nextcloud-talk.dms: anulaciones por mensaje directo, usando el identificador de usuario como clave (historyLimit).channels.nextcloud-talk.textChunkLimit: tamaño de los fragmentos de texto salientes en caracteres (valor predeterminado: 4000).channels.nextcloud-talk.streaming.chunkMode:length(valor predeterminado) onewlinepara dividir por líneas en blanco (límites de párrafos) antes de fragmentar por longitud.channels.nextcloud-talk.streaming.block.enabled: activa o desactiva la transmisión por bloques para este canal.channels.nextcloud-talk.streaming.block.coalesce: ajuste de la combinación de bloques durante la transmisión.channels.nextcloud-talk.responsePrefix: prefijo de las respuestas salientes.channels.nextcloud-talk.markdown.tables: modo de representación de tablas de Markdown (off | bullets | code | block).channels.nextcloud-talk.mediaMaxMb: límite de archivos multimedia entrantes (MB).channels.nextcloud-talk.network.dangerouslyAllowPrivateNetwork: permite que los hosts privados o internos de Nextcloud superen la protección contra SSRF.channels.nextcloud-talk.accounts.<id>: anulaciones por cuenta (las mismas claves);defaultAccountselecciona la cuenta predeterminada. Las variables de entornoNEXTCLOUD_TALK_BOT_SECRET/NEXTCLOUD_TALK_API_PASSWORDsolo se aplican a la cuenta predeterminada.
Contenido relacionado
- Descripción general de los canales — todos los canales compatibles
- Emparejamiento — autenticación de mensajes directos y flujo de emparejamiento
- Grupos — comportamiento de los chats grupales y requisito de menciones
- Enrutamiento de canales — enrutamiento de sesiones para mensajes
- Seguridad — modelo de acceso y refuerzo de la seguridad