Skip to main content

Introdução

Para desenvolver e hospedar um bot do Slack na Square Cloud, siga a sequência de configurações e pré-requisitos abaixo. Este guia cobre todo o processo, da configuração inicial ao deploy em produção.

Pré-requisitos

  • Conta Square Cloud: Cadastre-se através da página de cadastro usando seu e-mail.
  • Plano ativo: Garante recursos dedicados e desempenho otimizado para seu aplicativo. Confira nossos planos disponíveis e escolha o mais adequado às suas necessidades.
Este guia usa o runtime Node.js ou o runtime Python.

Crie o projeto

Para criar um bot do Slack, você precisará de uma conta e de permissões para criar apps no Slack. Crie ou acesse sua conta no Slack antes de seguir os próximos passos.

Aplicação de bot no Slack

  1. Acesse o Slack API - Your Apps e clique em “Create New App”.
  2. Escolha “From scratch” (Do zero), dê um nome ao app e selecione o workspace onde você irá instalá-lo.
  3. Na seção “Socket Mode”, ative o Socket Mode e gere um app-level token com o escopo connections:write. Copie-o (ele começa com xapp-): este é o seu SLACK_APP_TOKEN.
  4. Na seção “OAuth & Permissions”, adicione os escopos de que o seu bot precisa (ex.: chat:write, app_mentions:read, commands), instale o app no seu workspace e copie o Bot User OAuth Token (ele começa com xoxb-): este é o seu SLACK_BOT_TOKEN.
  5. Em “Event Subscriptions”, ative os eventos e assine o evento de bot app_mention. Em “Slash Commands”, crie o comando /hello. Com o Socket Mode ativo, nenhum dos dois pede uma Request URL.
Segurança: nunca exponha o app-level token ou o Bot Token publicamente. Trate-os como credenciais sensíveis: os exemplos abaixo os leem de variáveis de ambiente, nunca do seu código.
Com o Socket Mode, o próprio bot abre a conexão com o Slack, então ele roda como qualquer outro bot: não é preciso URL pública nem porta. Se preferir que o Slack envie os eventos por HTTP, veja Use o modo HTTP em vez do Socket Mode.

Desenvolva o bot

Use a aba da linguagem que você escolher. Os dois exemplos respondem a menções e ao comando de barra /hello.
  1. Certifique-se de que o Node.js está instalado.
  2. Inicialize um projeto e instale as dependências:
Terminal
  1. Crie um arquivo index.js com o seguinte conteúdo:
index.js

Configure a Square Cloud

Crie um arquivo squarecloud.app na raiz do projeto, ao lado do seu arquivo principal. Ele diz à Square Cloud como rodar o seu bot:
  • MAIN é o arquivo que a Square Cloud executa, e MEMORY é a RAM do bot em MB. Bots precisam de pelo menos 256 MB; 512 MB deixa espaço para crescer.
  • AUTORESTART=true inicia o bot de novo se ele travar. Veja como funciona o auto restart.
  • Não há SUBDOMAIN: no Socket Mode, o bot não precisa de URL pública.
Veja a referência do arquivo de configuração para todos os campos.

Defina os tokens

O seu código lê os dois tokens das variáveis de ambiente SLACK_BOT_TOKEN e SLACK_APP_TOKEN, então eles nunca entram nos seus arquivos. Defina-os de uma destas formas:
  • Dashboard: na página de upload, abra Configuração avançada e adicione as duas variáveis. Para um bot que já está no ar, adicione-as na página Variáveis de ambiente da aplicação e reinicie o bot.
  • CLI: logo depois de enviar o bot (veja Faça o deploy e verifique), defina-as com squarecloud app env set e reinicie o bot:
O bot lê as variáveis de ambiente quando inicia, então reinicie-o após cada alteração. Veja Variáveis de ambiente para as outras formas de gerenciá-las.

O que vai no ZIP

  • O seu arquivo principal (index.js ou app.py) e os seus outros arquivos de código.
  • package.json ou requirements.txt.
  • squarecloud.app.
Deixe de fora a node_modules, a .venv e a __pycache__: a Square Cloud instala as suas dependências quando o bot inicia.

Faça o deploy e verifique

Crie o ZIP descrito acima e faça o upload:

Via dashboard

1

Acesse a página de upload

Acesse a página de upload e envie seu arquivo zip.
2

Configure seu ambiente

Após fazer o upload do seu arquivo zip, você precisará configurar o nome, o arquivo principal ou o ambiente de execução e outras configurações do seu projeto.
Se você estiver enviando um projeto web, certifique-se de selecionar “Publicação na Web” e definir um subdomínio para o seu projeto.
3

Faça o deploy do projeto

Por fim, clique no botão “Deploy” para hospedar seu projeto na Square Cloud. Após o deploy, você poderá monitorar o status e os registros do seu projeto no dashboard.
Enviando aplicação para a Square Cloud
4

Confirme que seu app está no ar

Seu primeiro deploy geralmente leva menos de um minuto. No dashboard, aguarde o status da sua aplicação mudar para em execução e verifique os registros em busca de erros de inicialização.
Se você fez deploy de um site ou API, abra https://<seu-subdominio>.squareweb.app no navegador: você deve ver sua aplicação respondendo. Se você fez deploy de um bot, envie um comando para confirmar que ele está online.
Seu app não está iniciando? Veja o guia de solução de problemas para as causas e correções mais comuns.

Via CLI

Para usar esse método, seu projeto precisa de um arquivo de configuração chamado squarecloud.app na raiz. Ele informa à Square Cloud como executar a sua aplicação.

Guia do arquivo de configuração

Saiba como criar o arquivo de configuração squarecloud.app que define o ambiente da sua aplicação.
1

Instale a CLI

Instale a CLI da Square Cloud. Se você já a tem, execute o mesmo comando para atualizá-la:
2

Faça login

Execute o comando abaixo. Ele abre o seu navegador: aprove o login lá e a CLI está pronta. Não há nenhuma chave de API para copiar. Para scripts e CI, veja autenticação da CLI.
3

Envie o seu projeto

Na pasta do seu projeto, execute o comando abaixo. A CLI compacta a pasta atual, deixando de fora o que o squarecloud.ignore lista, e faz o upload:
Para enviar um zip que você mesmo criou, passe-o com --file:
4

Confirme que seu app está no ar

Seu primeiro deploy geralmente leva menos de um minuto. Verifique o status e os registros da sua aplicação diretamente pelo terminal:
Se você fez deploy de um site ou API, abra https://<seu-subdominio>.squareweb.app no navegador: você deve ver sua aplicação respondendo. Se você fez deploy de um bot, envie um comando para confirmar que ele está online.
Seu app não está iniciando? Veja o guia de solução de problemas para as causas e correções mais comuns.

Teste o bot

  1. Nas configurações do app no Slack, em “OAuth & Permissions”, instale o app no workspace (se ainda não tiver instalado).
  2. Verifique os logs da aplicação no dashboard da Square Cloud em busca de erros de inicialização. Com o Socket Mode não há Request URL para configurar: o bot se conecta ao Slack assim que inicia.
  3. Convide o bot para um canal e, em seguida, mencione-o ou rode o comando /hello para validar as respostas.
Exemplo de link de instalação (substitua o client_id):

Erros comuns

You must provide an appToken when socketMode is set to true

O Bolt para JavaScript para na inicialização com esta mensagem quando a SLACK_APP_TOKEN não está definida. Defina o app-level token (o que começa com xapp-) e reinicie o bot.

Either an env variable SLACK_BOT_TOKEN or token argument in the constructor is required

O Bolt para Python para na inicialização com esta mensagem quando a SLACK_BOT_TOKEN não está definida. Defina o Bot User OAuth Token (o que começa com xoxb-) e reinicie o bot.

O bot não responde a menções

Confira se o bot é membro do canal, se o “Event Subscriptions” assina o evento de bot app_mention e se você reinstalou o app depois de adicionar escopos.

Use o modo HTTP em vez do Socket Mode

Apps que usam Socket Mode não podem ser listados no Slack Marketplace público. Se você precisa que o Slack envie os eventos por HTTP, rode o bot como uma aplicação web:
  1. Nas configurações do app no Slack, desative o Socket Mode e copie o Signing Secret (em “Basic Information”) para uma variável de ambiente SLACK_SIGNING_SECRET, definida da mesma forma que os tokens.
  2. Crie o app com o signing secret em vez do app-level token e escute na porta da variável de ambiente PORT:
Os dois servidores escutam em todas as interfaces de rede (0.0.0.0), como a Square Cloud exige.
  1. Adicione um SUBDOMAIN ao seu arquivo de configuração (ou selecione “Publicação na Web” e defina um subdomínio ao enviar pelo dashboard) para que o bot tenha uma URL pública. Aplicações web precisam de pelo menos MEMORY=512:
squarecloud.app
Uma aplicação enviada sem subdomínio não pode ganhar um depois. Se o seu bot já roda em Socket Mode, envie a versão HTTP como uma nova aplicação.
  1. Em “Event Subscriptions” e no comando de barra /hello, defina a Request URL como https://<subdomain>.squareweb.app/slack/events.

Próximos passos

A aplicação não inicia

Corrija módulos faltando, erros de memória e outras falhas na inicialização.

Variáveis de ambiente

Gerencie os tokens do seu bot e outros segredos.

Bot do Discord

Hospede um bot do Discord ao lado do seu bot do Slack.
Para saber mais sobre o Bolt, consulte a documentação oficial do Slack para o Bolt para JavaScript e o Bolt para Python.

Contate-nos

Se você continuar enfrentando dificuldades técnicas, nossa equipe de suporte especializada está disponível para auxiliá-lo. Entre em contato conosco e teremos prazer em ajudá-lo a resolver qualquer questão: a qualidade do suporte é uma grande parte do motivo pelo qual desenvolvedores avaliam a Square Cloud com 4,9/5 em 402 avaliações no Google e Trustpilot.