Skip to content
mobius1qwe edited this page Nov 13, 2026 · 1 revision

Home > Chatbot > Slack

Chatbot no Slack

Important

Em desenvolvimento (2.0). Ainda não está numa versão lançada e pode mudar.

Nível: intermediário

Em uma frase: TRALChatSlack liga o robô ao Slack pela Events API e interatividade (com a assinatura v0 do Slack) ou pelo Socket Mode, e responde com chat.postMessage, Block Kit e arquivos.

Você vai precisar: os pacotes RALModuleChatPackage e RALModuleChatSlackPackage (requer RALNetPackage e RALModuleWebSocketPackage) e um cliente RAL com HTTPS.

Preparando no Slack

  1. Crie um app em api.slack.com/apps.
  2. Escopos do bot: chat:write, files:write, files:read, app_mentions:read, channels:history, im:history. Instale no workspace e use o token xoxb-... como token do canal.
  3. Pelo webhook: copie o Signing Secret para SigningSecret e aponte Event Subscriptions e Interactivity para https://seu.dominio/slack. O desafio url_verification é respondido sozinho.
  4. Sem servidor público (Socket Mode): ligue o Socket Mode, crie um token de app xapp-... com connections:write, ponha em AppToken (ou o nome da variável em AppTokenName) e use ReceiveMode := crmPolling.

O que o canal faz

  • Assinatura v0 (HMAC-SHA256) conferida antes de tudo, janela de 5 minutos; respostas em até 3 segundos (o robô trabalha depois).
  • Comandos de barra e ações de botão chegam ao robô como as outras mensagens.
  • Texto em mrkdwn, botões e menus em Block Kit (ButtonsPerRow), respostas em thread (ReplyTo), arquivos pelo fluxo de upload do Slack, edição e remoção.
  • O Slack não tem "digitando" para robôs: Supports(..., ccTyping) diz não.
  • O limite de cerca de 1 mensagem por segundo por canal e o Retry-After já são respeitados. "Testar token" (clique direito) mostra o robô e o workspace.

Erros comuns

sintoma causa o que fazer
o Slack diz que a URL não respondeu SigningSecret errado ou HTTPS inválido confira o segredo e o certificado
missing_scope ao enviar escopo faltando adicione e reinstale o app
Socket Mode não conecta AppToken vazio ou sem connections:write gere o token de app

Veja também

Começar

Servidor

MQTT 🚧

E-mail 🚧

Chatbot 🚧

Cliente

Motores

Avançado

Ajuda

🚧 = em desenvolvimento, pode mudar

Clone this wiki locally