Tutorial para desenvolvimento de bots

Tutorial para desenvolvimento de bots

Os bots ou robôs virtuais são aplicações computacionais programadas para realizar, de forma autônoma, uma tarefa previamente determinada. Esses programas podem ser usados em diversos contextos e para finalidades distintas. Com isso, essa publicação apresenta o desenvolvimento de um robô virtual capaz de facilitar inúmeras atividades cotidianas.

Os chatbots constituem uma das aplicações mais comuns para os bots. Eles têm sido cada vez mais usados em lojas virtuais para atendimento dos usuários. Trata-se de um robô previamente parametrizado e programado para interagir com um cliente, simulando uma conversa humana por meio de um chat. Dessa forma, o atendimento às requisições é simplificado, trazendo benefícios aos vendedores e para seus clientes.

O desenvolvimento de chatbots pode ser feito baseado em instruções pré-definidas ou por Inteligência Artificial (IA). O primeiro modo é mais limitado, pois apresenta um vocabulário restrito, aumentando as dificuldades de interação com o usuário. Por outro lado, um chatbot baseado em IA consegue estabelecer a comunicação de forma mais fluida, sem tantas limitações ou interferências humanas. Apesar do uso dos bots trazer questionamentos sobre a substituição do trabalho humano e o aumento do desemprego, essas ferramentas tendem a facilitar a execução das tarefas, evitando a realização de tarefas repetitivas.

No contexto empresarial, a aplicação de chatbots pode trazer benefícios, como aumento na velocidade de atendimento, interações simultâneas, redução de custos, maior disponibilidade para a realização de atendimentos, entre outros. Além de trazer facilidades ao ambiente corporativo por meio da desburocratização e automatização de processos, essa ferramenta computacional pode ser usada para a realização de tarefas individuais de forma simples e gratuita. Assim, mesmo sem conhecimentos prévios a respeito de linguagens de programação, é possível desenvolver um bot capaz de enviar fotos, vídeos, textos, dados, entre outros.

SUMÁRIO

  1. CRIAÇÃO DE UM BOT NO TELEGRAM

  2. USANDO O INTEGROMAT

  3. CONECTANDO O BOT DO TELEGRAM AO SCENARIO

  4. CONECTANDO E CONFIGURANDO BLOCOS

  5. FORMATANDO OS DADOS

  6. ADICIONANDO O GOOGLE CALENDAR

  7. AJUSTES FINAIS

  8. ETAPAS PARA O DESENVOLVIMENTO DA APLICAÇÃO

  9. CONCLUSÃO

  10. REFERÊNCIAS

CRIAÇÃO DE UM BOT NO TELEGRAM

Antes de começar a criar o robô virtual, é aconselhável definir qual o objetivo a ser alcançado através do bot. Para isso, é importante criar uma lista de funções que a aplicação deverá ser capaz de cumprir.

Há muitas formas distintas para desenvolver um bot. O Telegram permite a criação de robôs virtuais de forma simples e rápida. Para facilitar esse procedimento, pode ser feito o uso da plataforma Integromat a qual apresenta interface gráfica de fácil utilização, capaz de conectar o bot a aplicativos e serviços, como Facebook, Youtube, Discord, Tumblr, Instagram, Uber, entre outros. Ressalta-se ainda que, com o uso dessa plataforma, não há a necessidade de codificação.

O bot apresentado neste tutorial tem como função adicionar eventos na Google Agenda sem a necessidade de fazer o login nos serviços da Google. Desse modo, para realizar o cadastro de eventos e tarefas através do bot, é necessário lhe fornecer instruções. A fim de cumprir com tal requisito, utiliza-se o serviço de aplicação de mensagens instantâneas Telegram. Por meio desse robô virtual consegue-se simplificar a pequenos passos uma atividade que é, por vezes, tediosa. Sem mais delongas, vamos partir para a criação do bot!

Iniciando o uso do Botfather Iniciando a comunicação com o Botfather

Digite “BotFather” na barra de pesquisa do Telegram e encontre a aplicação do Telegram responsável pelo desenvolvimento de bots. Quando abrir o chat, clique em “Começar” ou digite /start. Quando a conexão com o “BotFather” for iniciada, digite /newbot para criar o seu bot.

Print da tela com as configurações iniciais do bot Configurações iniciais do bot

Após criar o bot, dê-lhe um nome e o nome de usuário. Por conseguinte, o BotFather lhe fornecerá um Token, responsável pela identificação do bot. Por último, copie o token e mantenha ele em algum lugar de fácil acesso.

USANDO O INTEGROMAT

Antes de dar prosseguimento à etapa anterior, crie uma conta no Integromat , plataforma que permite a integração entre bots e diversos serviços. A primeira imagem que aparecerá depois do cadastro e login é a seguinte:

Imagem que mostra a página inicial do Integromat Página inicial do Integromat

Para criar uma nova aplicação, clique em Create a new scenario:

Botão para iniciar a criação da aplicação.Posterior a isso, a tela apresentará as opções de serviços que podem ser utilizados. No caso dessa aplicação, selecione apenas o Telegram Bot e o Google Calendar usando a barra de pesquisa. Em seguida, clique em Continue.

Barra de pesquisa para os serviços a serem integrados com o bot Barra de pesquisa para os serviços

Após escolher o Google Calendar e o Telegram, clique em Continue. A primeira tela que aparecerá será a seguinte:

Seleção do primeiro programa Seleção do primeiro programa

Como se pode visualizar na imagem acima, há um círculo com uma interrogação seguido de um relógio. Esse sistema será o Trigger ou gatilho, responsável por perceber mudanças no processo e, com isso, realizar uma ação.

Escolha do programa a ser adicionado Escolha do programa a ser adicionado

No exemplo em questão, o gatilho será a mensagem enviada para o bot pelo chat do Telegram. Assim, o primeiro bloco a ser escolhido é o Telegram Bot.

Configuração inicial do bloco Telegram Configuração inicial do bloco Telegram

A tela seguinte será como a mostrada na imagem acima, entre as opções presentes, pressione Watch Updates. Isso deve ser feito para criar uma aplicação que funcione sem interrupções indesejadas. Caso essa escolha não fosse feita, a aplicação funcionaria em um tempo previamente definido pelo usuário na seção do relógio.

Configuração do bloco

Esse bloco vai ativar o I_ntegromat_ sempre que houver alguma atualização.

CONECTANDO O BOT DO TELEGRAM AO SCENARIO

A partir desse momento, é necessário realizar a conexão entre a aplicação no Integromat e um bot existente no Telegram.

Iniciando a conexão entre o bot e o Integromat Conectando o bot ao Integromat

Ao clicar nessa opção, inicia-se o processo de cadastramento do bot criado anteriormente no BotFather. Esse passo tem início ao clicar em Add e escolher um nome. Depois, deve-se clicar em Add novamente para adicionar uma conexão com o bot.

Adicionando o token do bot Adicionando o token do bot

Em seguida, clique novamente no botão Add que aparecerá nas próximas duas janelas. Com isso, será possível definir o nome da conexão no espaço Connection Name e colocar o Token, obtido após a criação do bot, para que ele possa ser identificado.

Posterior a isso, clica-se em Save para salvar a conexão estabelecida com o bot. Agora, é necessário criar ou deixar explícito para a aplicação a partir de qual evento ela deve atuar.

CONECTANDO E CONFIGURANDO BLOCOS

Para explicitar sobre qual evento a aplicação deve atuar, aproxime o cursor do mouse do primeiro módulo e clique em Add another module.

O próximo passo será adicionar um outro módulo e conectar ao primeiro do Telegram. O próximo módulo a ser adicionado será o de Tools (canto inferior esquerdo da tela).

Ao clicar em Tools, será aberta uma série de opções possíveis, como se pode visualizar na imagem abaixo. Será usado um bloco capaz de salvar valores em variáveis.

Adicionando o bloco de ferramentas Adicionando o bloco de ferramentas

Como dito anteriormente, para fins de se armazenar o valor das variáveis, escolhe-se a opção Set variable. O passo seguinte busca criar um vetor com a mensagem do telegram enviada pelo usuário, de modo que os elementos do vetor serão separados por espaço, exemplo: Vamos super que a mensagem recebida pelo bot seja:

festa 23/11/2020 15:40

Os elementos que devem ser salvos em um vetor são:

  • festa
  • 23/11/2020
  • 15:40

Para fazer isso, conecte os dois blocos (Telegram ---> Tools):

Conexão entre o bloco Telegram Bot e o Tools Conexão entre o bloco Telegram Bot e o Tools

Depois de conectar os dois blocos, faz-se necessário configurar o bloco Tools para que o objetivo almejado se concretize (separar as informações da mensagem em vetores separados por espaço).

Configurações do bloco das variáveis

Configurações do bloco das variáveis

Configurações do bloco das variáveis

Configurações do bloco das variáveis

Configurações do bloco das variáveis

Configurações do bloco das variáveis

Configurações do bloco das variáveis

Por fim, altere o Variable lifetime de One cycle para One execution e renomeie o Variable name para Mensagem.

Concluindo a configuração do bloco de ferramentas Concluindo a configuração do bloco de ferramentas

Uma vez terminada a configuração do bloco Set variable - Tools, é importante conectar esse conjunto a um bloco do bot do Telegram para que haja a percepção do efeito criado através do conjunto anterior.

Adição de bloco Telegram para realizar testes Realizando teste

Escolha a opção Send Text Message or a Reply para que o bot responda com uma mensagem de texto quando houver o gatilho.

Conectando os blocos Conectando os blocos

O resultado é mostrado na figura acima após conectar o novo bloco do Telegram Bot. Para prosseguir com esse teste, configure o bloco de modo que se preencham os campos de Chat ID e Text como mostrado na figura abaixo:

Configurando o bloco Telegram Configurando o bloco Telegram

Com a configuração feita, aperte o OK, salve a aplicação e clique em Run Once. A partir desse momento, você pode enviar mensagens para o bot no Telegram. O Run Once não permite que o bot funcione para sempre, mas faz o bot funcionar somente uma vez e depois a aplicação para (recomendado para a fase de testes da aplicação).

Botão para execução

Uma vez clicado, o funcionamento pode ser visto no chat do bot no Telegram, digitando um texto no seguinte formato:

/nomeDoEvento data hora

Caso ainda tenha dúvidas, siga o modelo mostrado na figura abaixo:

Testando a comunicação com o bot

Assim, percebe-se como o bot respondeu conforme as configurações feitas previamente.(O robô virtual está salvando o primeiro elemento “cortarCabelo”, o segundo elemento “05/02/2021” e o terceiro “14:00h”, todos separados por vírgula.

O próximo passo é separar essa informação/elemento e salvar numa variável. O primeiro elemento é o nome do evento e, para separar e salvar em uma variável, o seguinte procedimento deve ser seguido:

É necessário adicionar um Set variable, o qual pode ser encontrado na aba de Tools, logo após o primeiro que já havia sido construído nessa aplicação. Para desfazer as conexões entre os blocos, clique com o botão direito e pressione unlink. Então, mova blocos e os ajuste desta maneira:

Disposição dos blocos Disposição dos blocos

Com a disposição dos blocos ajustada, é necessário configurar esse novo bloco Set variable - Tools. Para isso, preencha-o com as informações presentes na figura abaixo.

Configurando novo bloco de ferramentas Configurando novo bloco de ferramentas

Por meio desse bloco, cria-se uma variável que armazena o valor resultante do primeiro elemento da informação anterior, ou seja, nomedoEvento. Caso haja dúvidas em relação a função slice, consulte a referência disponibilizada pelo suporte do próprio Integromat.

A função slice recebe como parâmetro uma string (palavra) e os índices que demarcam qual elemento a função deve armazenar. Como inicialmente só se deseja salvar o nome do evento, faz-se uso dos números 0 e 1. Isso se deve ao fato de que o elemento de índice zero é o nomedoEvento, o primeiro elemento é a data e o segundo elemento é o horário.

Antes de prosseguir para o próximo passo, a aplicação será testada. O último bloco do Telegram Bot deve ser configurado de modo que o campo Text apresente a seguinte informação:

Configuração de texto do bloco Telegram Bot Configuração de texto do bloco Telegram Bot

Depois dessa configuração, salve a aplicação e aperte o botão Run Once de novo. Posteriormente, envie a mensagem anterior “/cortarCabelo 05/02/2021 14:00” ao bot e, se aparecer uma caixa de diálogo, clique em listen for new.

Testando a comunicação com o bot

Após o entendimento sobre como extrair o primeiro valor, pode-se repetir o processo, de forma análoga, para extrair o segundo e o terceiro. Para isso, criam-se mais dois blocos Set Variable de modo que a disposição física da nossa aplicação fique conforme a figura abaixo no Integromat.

Disposição dos serviços Disposição dos serviços

Para configurar os blocos Set Variable - Tools seguintes, segue-se o mesmo procedimento realizado para armazenar o primeiro valor:

Configuração do terceiro bloco de ferramentas Configuração do terceiro bloco de ferramentas

Em dataEvento colocamos os parâmetros 1 e 2 para armazenar a informação da data.

E, no último, colocam-se o 2 e o 3, objetivando armazenar a informação do horário do evento.

Configuração do quarto bloco de ferramentas Configuração do quarto bloco de ferramentas

Ao finalizar a configuração de todos os blocos Set Variable - Tools, é necessário configurar novamente o bloco do bot. Alterando o conteúdo do campo Text como mostrado na figura a seguir:

Configuração do último bloco Telegram Configuração do último bloco Telegram Bot

Em seguida, salve a aplicação, aperte Run Once e inicie a conversa com o bot pelo chat do Telegram.

A resposta esperada ao enviar “/cortarCabelo 05/02/2021 14:00” é a seguinte:

Estabelecendo comunicação com o bot

Isso demonstra que cada informação foi salva por três variáveis distintas. Ou seja, a mensagem foi subdividida em partes distintas as quais foram armazenadas em variáveis diferentes.

Antes de prosseguir, percebe-se que já foram feitas as seguintes etapas: configurou-se a aplicação para obter a mensagem fornecida pelo usuário através do chat do Telegram, armazenando-a em blocos separados (nome do evento, data, horário).

Por último, após separar as informações, extraem-se os seus respectivos valores. Nesse momento, com o tratamento dos dados envolvidos no processo concluído, faz-se necessária a criação do evento. Em busca disso, é preciso colocar os valores de data e hora num formato específico aceito pelo Google Agenda.

[mes/dia/ano][espaço][hora-+fuso]

Exemplo:

05/02/2021 14:00-03:00

Esta data pode ser lida como 2 de maio de 2021 às 14:00h no fuso horário GMT -3 (que é o fuso horário no Brasil)

Como colocar as informações em um formato específico? Para isso, novamente, cria-se mais um bloco Set variable. Este último bloco vai usar as variáveis horaEvento e dataEvento para criar uma nova variável com o formato adequado para o Google.

A disposição física dos blocos deve ser idêntica à mostrada na imagem abaixo:

Disposição dos blocos Disposição dos blocos

FORMATANDO OS DADOS

Para que o funcionamento ocorra corretamente, o último bloco deve ser configurado desta forma:

Configuração do último bloco de ferramentas Configuração do último bloco de ferramentas

A função to string converte os valores para o formato string e, por meio desse bloco, há a adição de um espaço e do fuso horário referente à localização atual. Por fim, ao apertar OK, há o salvamento em uma variável toCalendar.

Novamente, retorne à conversa com o bot e observe a diferença entre os formatos da mensagem anterior à conversão e presente:

Testando a comunicação com o bot

Há a possibilidade de inserção de novos formatos de data e horário quando houver o envio da mensagem para o bot.

A data pode ser expressa das seguintes formas:

  • ano-mes-dia: 2016-06-20
  • ano/mes/dia: 2016/06/20
  • mes/dia/ano: 06/20/2020
  • dia.mes.ano: 20.06.2020

A hora pode ser expressa de duas formas:

  • hora[24h]:minuto: 17:26
  • hora[12h]:minuto[espaço][AM/PM]: 5:26 PM

A forma escolhida para prosseguirmos com a construção da aplicação é a seguinte:

dia.mes.ano para data. hora:minuto[12h] para horário.

Logo, uma forma de marcar o evento pode ser:

/cortarCabelo 01.02.2021 15:00

ADICIONANDO O GOOGLE CALENDAR

Agora, deve-se colocar o bloco que adiciona o evento no Google Calendar.

Configurando o bloco Google Calendar Configurando o bloco Google Calendar

Selecione o bloco Create an Event e posicione-o entre o bloco Set variable, onde foi criada a variável toCalendar, e o bloco Send a text message or a Reply do Telegram, como na imagem abaixo:

Disposição dos blocos após a adição do Google Calendar Disposição dos blocos após a adição do Google Calendar

Agora vamos configurar o Google Calendar - Create an Event.

Após clicar nele, no campo Connection, pressione Add.

Estabelecendo a conexão entre a aplicação e a conta no gmail Estabelecendo a conexão entre a aplicação e a conta no gmail

Depois de clicar em Continue, haverá a abertura de uma janela destinada a receber as informações da conta Google e conectar o Calendário Google ao Integromat.

Em seguida, é necessário preencher os seguintes campos:

Continuação da configuração do bloco Google Calnedar

Em Calendar ID, selecione o calendário onde o evento será adicionado. Caso esse seja o primeiro calendário criado, deve-se pressionar a opção Primary Calendar.

Em Event Name coloque a variável criada anteriormente nomeEvento.

Em Start Date e End Date coloque a variável toCalendar.

AJUSTES FINAIS

Depois dessa etapa, o bot está pronto para uso. Apesar dele já estar funcionando normalmente, é preciso adicionar uma mensagem no último bloco de modo a garantir e certificar de que o bot emita um alerta de sucesso como “Evento adicionado”.

Configuração do último bloco Telegram Configuração da confirmação do evento

Vamos ver se o evento está finalmente sendo criado agora?

Testando confirmação

Salve a aplicação e aperte o botão Run Once. Feito isso, converse com o seu bot no Telegram de modo a enviar as informações do evento.

Parece que funcionou, certo? Vamos observar se o evento foi criado!

Evento criado no Google Calendar Evento criado no Google Calendar

Como pode ser visualizado na figura acima, o evento foi adicionado no Google Calendar no dia e hora em que especificados ao bot. A fim de que esse funcionamento permaneça de forma ininterrupta, é necessário ligar o bot para que ele funcione sem a necessidade de pressionar o Run Once a cada execução. Para isso, é preciso ligá-lo no botão-chave, localizado logo abaixo do botão Run Once.

Tecla de ativação do bot Tecla de ativação do bot

Após isso, é possível definir um nome para a integração no canto superior esquerdo, clicando sobre o nome e alterando seu valor.

Renomeando a integração

Renomeando a integração

Posteriormente, salve o seu projeto para finalizar clicando no disquete na aba Controls.

Salvando o projeto Salvando o projeto

Ao receber a mensagem de confirmação, é possível retornar à página inicial e o bot criado já está funcionando. Assim, a criação de eventos no Google Agenda pode ocorrer pela comunicação com o bot pelo Telegram.

Checagem do funcionamento Checagem do funcionamento

Ressalta-se que, se houver algum erro de escrita ou formatação durante a troca de mensagens com o bot, será necessário ativá-lo novamente no Integromat. Isso se deve ao fato de que, para não aumentar a complexidade da aplicação, não houve o desenvolvimento de uma possibilidade para tratar erros.

ETAPAS PARA O DESENVOLVIMENTO DA APLICAÇÃO

Resumo das etapas para o desenvolvimento do bot

CONCLUSÃO

A partir desse manual, o(a) leitor(a), independente do nível de conhecimentos prévios, pode compreender o que são os bots, bem como a capacidade desse tipo de aplicação em solucionar problemas estruturados, programáveis e parametrizados. Além disso, o(a) leitor(a) consegue desenvolver um robô virtual capaz de reduzir uma atividade mecânica para o envio de uma mensagem no chat específico.

Apesar do manual inserir os robôs virtuais em um contexto específico (adicionar eventos na Google Agenda), o procedimento para construir outros bots, que possam exercer funções distintas, segue as mesmas diretrizes apresentadas quando se faz uso de uma integração entre o Integromat e o Telegram.

Por fim, não se esqueça de comentar sobre nossa publicação, colocar as suas dúvidas e nos trazer sugestões para posts futuros.

REFERÊNCIAS

[GUIA Completo] Chatbot: o que é, como funciona, benefícios e cases. [S. l.], 30 out. 2019. Disponível em: https://take.net/blog/chatbots/chatbot. Acesso em: 1 fev. 2021.

Tutorials | Integromat. [S. l.], 2012. Disponível em: https://www.integromat.com/en/kb/tutorials.html. Acesso em: 1 fev. 2021.

Telegram API. [S. l.], 2013. Disponível em: https://core.telegram.org/api. Acesso em: 1 fev. 2021.

Breno Amin

Breno Amin

Olá, eu sou Breno Amin Matos Gomes, graduando do curso Engenharia Elétrica da UFBA. Um amante de ciências e tecnologias, fã de esportes nas horas vagas e um curioso pelo novo do mundo...

Mauricio Taffarel

Mauricio Taffarel

Adoro aprender coisas novas, todos os dias. Amo construir coisas (quebrar também!!). Gosto muito de matemática, física e eletrônica.

Rafael Short

Rafael Short

Em uma busca contínua por conhecimentos, como: Linguagens de programação, Desenvolvimento WEB, Automação, Eletrônica, Física, entre outros. Além disso, costumo ler livros, ver filmes, escrever texos, ouvir músicas e aprender novos idiomas.