Como foi criar um bot para o Slack


Quando as pessoas falam de bot, eu penso em um programa que se diferencia muito dos outros. Este programa responderia a comandos passados em linguagem natural (na maioria dos casos) e teria a autonomia e o conhecimento de um usuário para que ele pudesse presumir e executar ações que seriam feitas por usuários.

Para um desenvolvedor é interessante experimentar formas de criar um software diferente e as pôr a prova. Mas, é importante lembrar que experimentos podem ter resultados ruins pela falta de experiência. Logo, nesse caso, se o software não tenha uma performance desejável ou negligencie algum aspecto muito importante para o uso não significa necessariamente que seu resultado ruim seja a sentença de que essa tecnologia não vá ser difundida, mas sim algo a ser considerado.


Considerando o que foi dito, o bot que eu desenvolvi tem a funcionalidade de verificar se serviços estão de pé. Para que o bot saiba quais serviços ele deve verificar, um usuário deveria enviar pelo Slack uma mensagem para o Bot com um JSON com algum site ou API. Logo, ele armazenaria esse valores e então sempre que recebesse uma mensagem perguntado sobre os serviços, o bot faria PING em cada um desses sites e retornaria uma mensagem com o estado deles.

O código do projeto que eu desenvolvi está disponível aqui: bebop-the-boar-man-rtm

O bot foi hospedado no beepboophq.com. O BeepBoop oferece: serviço de deploy, um bot para monitorar o deploy no beepboop e controle do app na página de aplicativos do Slack (Ah eles também estão fazendo algo para o messenger do Facebook). Tem um detalhe a ser considerado, o controle na loja do Slack estará disponível apenas se você usar o biblioteca Slapp pra o node. Além disso, o BeepBoop te dá acesso a boilerplates (em diversas linguagens) para dar inicio a novos projetos.

A página do Beepboop no Slack e bastante ativa! Pode ser usada para tirar dúvidas :)

Tem um post bem massa no blog oficial do Beeboop que ensina como criar um bot que usa o Slapp e configurar o Projeto no Beepboop: https://blog.beepboophq.com/making-it-easier-to-25419build-and-test-slack-apps-5ef412ea61bf#.surf5x26q

O meu bot foi feito em node e com a biblioteca Botkit. Preferi não utilizar o Slapp, mas o uso das duas bibliotecas é bastante semelhante. O que me fez escolher essa biblioteca foram: os eventos disponíveis, o acesso de alguns dados (como por exemplo, quem está enviando a mensagem para o bot), o diferencial de que o Botkit também dá suporte à outras plataformas além do Slack e a quantidade de pessoas que usam ele. Mas, infelizmente, por usar o Botkit o BeepBoop acaba sendo usado apenas como hosting e deploy contínuo.


É bem fácil criar um bot simples! Caso esteja em dúvida, os boilerplates disponíveis do beepboop são um ótimo começo.

Sinta-se a vontade para adicionar funcionalidades e melhoras no bot.

Críticas no código são muito bem vindas ;)

https://github.com/trocase/bebop-the-boar-man-rtm