Histórico de conversas com Integromat
Telegram
O Telegram é um aplicativo de mensagens instantâneas. Para criar um bot no Telegram é necessário procurar por @botfather e enviar os seguintes comandos:
/start
/newbot
Com isso será preciso informar o nome e o username do bot. Em seguida o Botfather retorna com um token (guarde ele pois iremos precisar).
Watson Assistant
O Watson Assistant (antigo Watson Conversation) é a API do Watson para a criação e desenvolvimento de interfaces conversacionais, ou chatbots. Este serviço possui uma interface simples e intuitiva para que profissionais não-técnicos possam usufruir de todos os recursos disponíveis, de forma simples e rápida.
Orquestrador
O orquestrador tem a função de coletar as mensagens enviadas pelo usuário, tratar se necessário, enviar ao bot, coletar a resposta do bot e enviar esta resposta ao usuário. O orquestrador utilizado foi feito usando node.js e hospedado no firebase.
Para estes dois tópicos a cima foi usado o bot e o orquestrador mencionados no seguinte artigo “Controlando um Arduino com Watson Assistant”
Integromat
Aplicativo que permite realizar a sincronização de diversas aplicações incluindo Google Sheets, Telegram, entre outros, além de fazer requisições como POST e GET. Utiliza-se o sistema de módulos, onde cada aplicação que será usada é um módulo e para interliga-los basta usar linhas.
Para criar um novo cenário (scenario) vá em “+ Create a new scenario” e busque por Telegram, Google Sheets, HTTP e JSON. Selecione estes módulos e clique em “Continue”.
Primeiro iremos precisar do módulo do Telegram, para isso selecione o módulo do Telegram e procure a opção “Watch updates”. Para monitorar um bot específico é necessário inserir o Token fornecido pelo Botfather, então clique em “Add” para adicionar um novo Webhook (ao criar este Webhook é possível utilizá-lo em qualquer outro módulo), cole o Token no campo especificado e salve.
O segundo módulo é o HTTP que irá fazer uma requisição, selecione este módulo nos seus favoritos (se este não aparecer vá em “+” e procure por ele), cole a url gerada pelo firebase functions em URL, selecione o método POST, e Application/x-www-form-urlencoded no Body type, adione em Fields uma KEY com o nome de context, o value deixe vazio, o outro item é o input e o value é a mensagem recebida pelo telegram.
A resposta desta requisição é formato JSON, então adicione o módulo JSON do tipo Parse JSON no cenário. Crie uma estrutura de resposta para este módulo e no campo de “JSON string” adicione a opção “Data” da requisição HTTP. A figura abaixo mosta todas as opções de variáveis disponíveis para serem usadas.
Como o Integromat não acessou o orquestrador ainda, ele não consegue pré configurar a estrutura de resposta do JSON, logo, para coletar a resposta do bot iremos rodar o cenário. Adicione mais um módulo do Telegram mas desta vez com o tipo de “Send a text message or a reply”. Use a conexão criada no primeiro módulo. O chat ID está disponível nas variáveis do sistema. Como teste iremos enviar apena um OK!
Vá em “Run once” e envie uma mensagem para o seu bot do Telegram. Agora é possível coletar a resposta do orquestrador, então em Text selecione a variável do JSON “output:text[1]”. Com isso o bot irá responde com as respostas configuradas no Watson Assistant.
Para salvar as mensagens do chat crie uma nova sheet no seu Google Drive e adicione os itens Origem, Data e Mensagem nas colunas desta sheet. De volta ao Integromat, entre os módulos JSON e Telegram Bot clique com o botão direito na linha que liga os dois e selecione “Add a router”. Agora adicione o módulo Google Sheets com a opções de “Add Row”, e ligue com o router, crie uma conexão usando a sua conta da Google e selecione a sheet para salvar as mensagens, em Value irão aparecer os campos Origem, Data e Mensagem, neste módulo a origem será do usuário. As informações que serão preenchidas na sheet estão representadas na imagem ao lado.
Abaixo está o outro módulo de Google Sheets que irá adicionar a sheet a resposta do bot. No campo Mensagem é usado a variável obtida da requisição feita ao orquestrador.
Abaixo está representado o resultado do cenário.