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)

  1. Instale o plugin do Nextcloud Talk.

  2. No seu servidor Nextcloud, crie um bot:

    ./occ talk:bot:install "OpenClaw" "<shared-secret>" "<webhook-url>" --feature reaction
  3. Habilite o bot nas configurações da sala alvo.

  4. Configure o OpenClaw:

    • Config: channels.nextcloud-talk.baseUrl + channels.nextcloud-talk.botSecret
    • Ou env: NEXTCLOUD_TALK_BOT_SECRET (apenas conta padrão)
  5. 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 webhookPublicUrl se 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 + apiPassword para 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-talk
    • openclaw pairing approve nextcloud-talk <CODE>
  • DMs públicas: channels.nextcloud-talk.dmPolicy="open" mais channels.nextcloud-talk.allowFrom=["*"].
  • allowFrom aceita 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

FuncionalidadeStatus
Mensagens diretasSuportado
SalasSuportado
ThreadsNão suportado
MídiaApenas URL
ReaçõesSuportado
Comandos nativosNã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). open requer "*".
  • 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) ou newline para 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).