Aqui está o código do gateway do projeto SUSBot.
Este serviço é responsável por receber, tratar, armazenar as mensagens vindas do WhatsApp e também enviar para o Botkit e encaminhar a resposta ao usuário.
A Twilio é o nosso broker de Whatsapp. Ela que intermedia as mensagens entre nós e o usuário.
O Ngrok é útil durante o desenvolvimento, ele que expõe o nosso gateway para a internet o que nos possibilita receber POST requests no gateway.
Crie sua conta nos dois serviços.
Na sua conta twilio, vá na aba de enviar uma mensagem de teste (algo como "try it out") e adicione seu número de celular no sandbox deles.
Você precisa ter o Docker instalado em seu computador.
Defina o seu .env e deixe na pasta base do projeto (ao lado da main.go)
No diretório raiz use o comando:
docker compose up -d --build
Depois, vá no seu navegador e entre em localhost:4040 e copie o link fornecido pelo NGROK.
Ele é longo, parecido com "https://XXXX-XXX-X-XXX-XXX.ngrok-free.app"
Na Twilio, entre em "Develop" depois "Messaging" e "Try it out" e, por fim, "Send a Whatsapp message"
Na aba sandbox adicione o seu celular no sandbox do bot.
Pegue o link fornecido no ngrok e adicione no seu sandbox settings na campo "when a message comes in" e defina o método para post
Agora teste! Mande mensagem pelo seu celular e veja o SUSBot vivo!
# -- Seu Token de Autorização do Ngrok --
NGROK_AUTHTOKEN=XXXXXX