Crie seu primeiro Bot no Slack

Crie seu primeiro Bot no Slack

Publicado em: 20/4/2016

Tenho certeza que você em algum momento da sua vida já trabalhou com formulário de contato certo? A maioria deles enviando um e-mail para um e-mail pré-definido que alguém DNA empresa iria ler e responder (ou ignorar). Formulários de contato são exemplos de clássicos pra quem está iniciando no mundo do desenvolvimento web. Lembro lá em 2011/2012 quando eu ficava caçando uma lib no PHP pra fazer os envios.

Porque estou falando em formulários e envio de e-mail? Porque recentemente estava trabalhando em um app e sempre recebi sugestões nos comentários da play store, mas como sabemos nem todo mundo que usa o app avalia, então resolvi fazer um formulário para sugestões no APP. Aí pensando comigo que queria deixar minhas entregas nas mãos dos servidores de e-mail que vira e mexe entram em blacklists e não entregam ou classificam como spam e também não queria deixar em um banco de dados porque não era algo que quero armazenar por muito tempo, tem alguns que irei descartar e não iria ficar abrindo o banco de dados pra verificar se tem sugestão, se não for vão excluir e bla bla bla...

Então me lembrei do bate papo que tivemos na Semana do Dev na Locaweb esse ano (2020) que eu falei sobre algumas ferramentas e nesse caso poderia usar uma delas o Slack. Não vou falar detalhadamente o que é o slack porque tem muito material sobre isso, mas resumindo bem o Slack é uma ferramenta de comunicação, você troca mensagens e pode até fazer vídeo chamadas. Tem integrações com diversas após tipo Google Drive, Google Calendar, Sentry, etc...

Pensei, vou enviar essa sugestões para o slack, não me preocupo com blacklists e spams, não me preocupo de ficar indo no banco de dados ver as novas mensagens e nem me preocupar em descartar ou não... Então vamos lá vou mostrar pra vocês o que fiz para integrar meu app com o Slack.

Primeiro vamos preparar o Slack, vamos criar um App e habilitar um bot. Esse bot vai ter um endpoint que vamos usar para nossa comunicação.

Criar App no Slack

Você vai acessar o link https://api.slack.com/apps?new_app e criar o App.

Habilitar Bot

Depois de criar o app você precisa habilitar o seu bot para isso vá em App Home no e vá na opção “Review Scopes to Add” (o botão verde).

Na tela próxima página você vai scrollar até o Scopes, vai criar em Add an OAuth Scope e vai adicionar o scope call:write.

Habilitar Webhook

Depois disso você no menu lateral você vai acessar o Incoming Webhooks, e vai ativar ele no switch de Off/On ao lado do Activate Incoming Webhooks, depois de ativar vai no botão Add New Webhook to Workspace.

Nessa parte você vai escolher o canal que o seu bot vai enviar as mensagens. e pronto você vai ter gerado o um endpoint que você irá usar na sua aplicação.

Integrar na sua aplicação

Com o endpoint em mãos você tem várias formas de usá-lo, eu vou pela forma mais simples que foi a que eu usei no meu app. O meu app se comunica com uma API em Rails. Então vou seguir o mesmo fluxo e no nosso projeto de teste vamos adicionar a gem 'slack-notifier'

Adicionando a gem no Gemfile você vai fazer a chamada da gem da seguinte forma.


notifier = Slack::Notifier.new('https://hooks.slack.com/services/SOME-KEY/ANOTHER-KEY')
notifier.ping("Enviando mensagem com o meu BOT")

Está pronto. Para testar você pode acessar o endpoint da sua aplicação.

O resultado final é esse...

Live Coding

Se ficou com alguma dúvida em algum passo assista o vídeo abaixou onde estou fazendo passo a passo desde o início.

Agora o céu é o limite, você pode passar parâmetros, configurar lógicas de envios e aí por diante. Gostou do conteúdo, quer continuar vendo algo nessa linha? Dúvidas ou sugestões deixe um comentário. =)