Nextcloud Talk (plugin)
Status: suportado via plugin (bot webhook). Mensagens diretas, salas, reações e mensagens markdown são suportadas.
Plugin necessário
O Nextcloud Talk é distribuído como plugin e não vem incluído na instalação padrão.
Instalação via CLI (registro npm):
openclaw plugins install @openclaw/nextcloud-talk
Checkout local (quando rodando a partir de um repositório git):
openclaw plugins install ./extensions/nextcloud-talk
Se você escolher Nextcloud Talk durante configure/onboarding e um checkout git for detectado, o OpenClaw oferecerá o caminho de instalação local automaticamente.
Detalhes: Plugins
Configuração rápida (iniciante)
-
Instale o plugin do Nextcloud Talk.
-
No seu servidor Nextcloud, crie um bot:
./occ talk:bot:install "OpenClaw" "<shared-secret>" "<webhook-url>" --feature reaction -
Habilite o bot nas configurações da sala alvo.
-
Configure o OpenClaw:
- Config:
channels.nextcloud-talk.baseUrl+channels.nextcloud-talk.botSecret - Ou env:
NEXTCLOUD_TALK_BOT_SECRET(apenas conta padrão)
- Config:
-
Reinicie o gateway (ou finalize o onboarding).
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 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 suportados pela API de bot; mídia é enviada como URLs.
- O payload do webhook não distingue 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. - Aprove via:
openclaw pairing list nextcloud-talkopenclaw pairing approve nextcloud-talk <CODE>
- DMs públicas:
channels.nextcloud-talk.dmPolicy="open"maischannels.nextcloud-talk.allowFrom=["*"]. allowFromaceita apenas IDs de usuário do Nextcloud; nomes de exibição são ignorados.
Salas (grupos)
- Padrão:
channels.nextcloud-talk.groupPolicy = "allowlist"(com gating de menção). - Permita salas com
channels.nextcloud-talk.rooms:
{
channels: {
"nextcloud-talk": {
rooms: {
"room-token": { requireMention: true },
},
},
},
}
- Para não permitir nenhuma sala, mantenha a allowlist vazia ou defina
channels.nextcloud-talk.groupPolicy="disabled".
Funcionalidades
| Funcionalidade | Status |
|---|---|
| Mensagens diretas | Suportado |
| Salas | Suportado |
| Threads | Não suportado |
| Mídia | Apenas URL |
| Reações | Suportado |
| Comandos nativos | Não suportado |
Referência de configuração (Nextcloud Talk)
Configuração completa: Configuração
Opções do provedor:
channels.nextcloud-talk.enabled: habilitar/desabilitar 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 de arquivo regular para o segredo. Symlinks são rejeitados.channels.nextcloud-talk.apiUser: usuário API para consultas de sala (detecção de DM).channels.nextcloud-talk.apiPassword: senha API/app para consultas de sala.channels.nextcloud-talk.apiPasswordFile: caminho do arquivo de senha 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: allowlist de DM (IDs de usuário).openrequer"*".channels.nextcloud-talk.groupPolicy:allowlist | open | disabled.channels.nextcloud-talk.groupAllowFrom: allowlist de grupo (IDs de usuário).channels.nextcloud-talk.rooms: configurações e allowlist por sala.channels.nextcloud-talk.historyLimit: limite de histórico de grupo (0 desabilita).channels.nextcloud-talk.dmHistoryLimit: limite de histórico de DM (0 desabilita).channels.nextcloud-talk.dms: sobrescritas por DM (historyLimit).channels.nextcloud-talk.textChunkLimit: tamanho do chunk 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 tamanho.channels.nextcloud-talk.blockStreaming: desabilitar block streaming para este canal.channels.nextcloud-talk.blockStreamingCoalesce: ajuste de coalesce do block streaming.channels.nextcloud-talk.mediaMaxMb: limite de mídia de entrada (MB).