Developer and self-hosted
Nextcloud Talk
Status: plugin integrado (bot de Webhook). Mensagens diretas, salas, reações e mensagens em markdown são compatíveis.
Plugin integrado
O Nextcloud Talk é distribuído como um plugin integrado nas versões atuais do OpenClaw, portanto builds empacotados normais não precisam de uma instalação separada.
Se você estiver em um build mais antigo ou em uma instalação personalizada que exclui o Nextcloud Talk, instale o pacote npm diretamente:
Instalar via CLI (registro npm):
openclaw plugins install @openclaw/nextcloud-talkUse o pacote sem versão para seguir a tag de lançamento oficial atual. Fixe uma versão exata somente quando precisar de uma instalação reproduzível.
Checkout local (ao executar a partir de um repositório git):
openclaw plugins install ./path/to/local/nextcloud-talk-pluginDetalhes: Plugins
Configuração rápida (iniciante)
-
Garanta que o plugin Nextcloud Talk esteja disponível.
- As versões empacotadas atuais do OpenClaw já o incluem.
- Instalações mais antigas/personalizadas podem adicioná-lo manualmente com os comandos acima.
-
No seu servidor Nextcloud, crie um bot:
bash ./occ talk:bot:install "OpenClaw" "<shared-secret>" "<webhook-url>" --feature webhook --feature response --feature reaction -
Habilite o bot nas configurações da sala de destino.
-
Configure o OpenClaw:
- Configuração:
channels.nextcloud-talk.baseUrl+channels.nextcloud-talk.botSecret - Ou env:
NEXTCLOUD_TALK_BOT_SECRET(somente conta padrão)
Configuração via CLI:
bash openclaw channels add --channel nextcloud-talk \ --url https://cloud.example.com \ --token "<shared-secret>"Campos explícitos equivalentes:
bash openclaw channels add --channel nextcloud-talk \ --base-url https://cloud.example.com \ --secret "<shared-secret>"Segredo baseado em arquivo:
bash openclaw channels add --channel nextcloud-talk \ --base-url https://cloud.example.com \ --secret-file /path/to/nextcloud-talk-secret - Configuração:
-
Reinicie o Gateway (ou finalize a configuração).
Configuração mínima:
{ channels: { "nextcloud-talk": { enabled: true, baseUrl: "https://cloud.example.com", botSecret: "shared-secret", dmPolicy: "pairing", }, },}Observações
- Bots não podem iniciar DMs. O usuário deve enviar uma mensagem ao bot primeiro.
- A URL do Webhook deve ser acessível pelo Gateway; defina
webhookPublicUrlse estiver atrás de um proxy. - Uploads de mídia não são compatíveis com a API do bot; a mídia é enviada como URLs.
- A carga útil do Webhook não diferencia DMs de salas; defina
apiUser+apiPasswordpara habilitar consultas de tipo de sala (caso contrário, DMs são tratadas como salas).
Controle de acesso (DMs)
- Padrão:
channels.nextcloud-talk.dmPolicy = "pairing". Remetentes desconhecidos recebem um código de pareamento. - Aprovar via:
openclaw pairing list nextcloud-talkopenclaw pairing approve nextcloud-talk <CODE>
- DMs públicas:
channels.nextcloud-talk.dmPolicy="open"maischannels.nextcloud-talk.allowFrom=["*"]. allowFromcorresponde apenas a IDs de usuário do Nextcloud; nomes de exibição são ignorados.
Salas (grupos)
- Padrão:
channels.nextcloud-talk.groupPolicy = "allowlist"(controlado por menção). - Coloque salas na lista de permissões com
channels.nextcloud-talk.rooms:
{ channels: { "nextcloud-talk": { rooms: { "room-token": { requireMention: true }, }, }, },}- Para não permitir nenhuma sala, mantenha a lista de permissões vazia ou defina
channels.nextcloud-talk.groupPolicy="disabled".
Capacidades
| Recurso | Status |
|---|---|
| Mensagens diretas | Compatível |
| Salas | Compatível |
| Threads | Não compatível |
| Mídia | Somente URL |
| Reações | Compatível |
| Comandos nativos | Não compatível |
Referência de configuração (Nextcloud Talk)
Configuração completa: Configuração
Opções do provedor:
channels.nextcloud-talk.enabled: habilitar/desabilitar a inicialização do canal.channels.nextcloud-talk.baseUrl: URL da instância Nextcloud.channels.nextcloud-talk.botSecret: segredo compartilhado do bot.channels.nextcloud-talk.botSecretFile: caminho do segredo em arquivo regular. Symlinks são rejeitados.channels.nextcloud-talk.apiUser: usuário da API para consultas de sala (detecção de DM).channels.nextcloud-talk.apiPassword: senha da API/app para consultas de sala.channels.nextcloud-talk.apiPasswordFile: caminho do arquivo de senha da API.channels.nextcloud-talk.webhookPort: porta do listener de Webhook (padrão: 8788).channels.nextcloud-talk.webhookHost: host do Webhook (padrão: 0.0.0.0).channels.nextcloud-talk.webhookPath: caminho do Webhook (padrão: /nextcloud-talk-webhook).channels.nextcloud-talk.webhookPublicUrl: URL do Webhook acessível externamente.channels.nextcloud-talk.dmPolicy:pairing | allowlist | open | disabled.channels.nextcloud-talk.allowFrom: lista de permissões de DM (IDs de usuário).openexige"*".channels.nextcloud-talk.groupPolicy:allowlist | open | disabled.channels.nextcloud-talk.groupAllowFrom: lista de permissões de grupo (IDs de usuário).channels.nextcloud-talk.rooms: configurações por sala e lista de permissões.- Grupos estáticos de acesso de remetente podem ser referenciados em
allowFromegroupAllowFromcomaccessGroup:<name>. channels.nextcloud-talk.historyLimit: limite do histórico de grupo (0 desabilita).channels.nextcloud-talk.dmHistoryLimit: limite do histórico de DM (0 desabilita).channels.nextcloud-talk.dms: substituições por DM (historyLimit).channels.nextcloud-talk.textChunkLimit: tamanho do bloco de texto de saída (caracteres).channels.nextcloud-talk.chunkMode:length(padrão) ounewlinepara dividir em linhas em branco (limites de parágrafo) antes da divisão por comprimento.channels.nextcloud-talk.blockStreaming: desabilitar streaming de blocos para este canal.channels.nextcloud-talk.blockStreamingCoalesce: ajuste de coalescência de streaming de blocos.channels.nextcloud-talk.mediaMaxMb: limite de mídia de entrada (MB).
Relacionado
- Visão geral dos canais — todos os canais compatíveis
- Pareamento — autenticação de DM e fluxo de pareamento
- Grupos — comportamento de chat em grupo e controle por menção
- Roteamento de canal — roteamento de sessão para mensagens
- Segurança — modelo de acesso e hardening