Guia rápido para enviar e receber mensagens de WhatsApp em node.js
Saiba como configurar a API de WhatsApp da Zenvia para troca de mensagens em node.js, de forma prática. Texto de Rafael Sousa, desenvolvedor na Zenvia.
Saiba maisO melhor portal de Marketing e Vendas para a sua empresa
Confira o nosso passo a passo e aprenda na prática como enviar um torpedo de voz utilizando a API da Zenvia.
Quem nunca passou por aqueles problemas de indisponibilidade no website, seja pelo alto tráfego de acesso, expiração do certificado SSL ou até mesmo em virtude de um commit na branch errada? Sim, isso certamente já aconteceu com você. Convenhamos, é um problema chato que quase sempre o cliente é o primeiro a saber. E, como vamos ver, o torpedo de voz pode ter um papel importante em uma situação como essa.
Que tal receber um alerta de voz em seu celular quando isso ocorrer? Através da API de Voz, conseguimos enviar mensagens por leitura de texto, isto é, o TTS (text-to-speach). Nele, você escreve uma mensagem de texto e o receptor da mensagem receberá uma ligação de voz.
Dito isso, agora é hora de configurar o nosso ambiente de trabalho. Confira alguns pontos importantes antes de começarmos:
Para fazer a instalação do Golang, sigas as instruções abaixo.
Download da versão mais recente:
➜ ~ curl -LJO https://dl.google.com/go/go1.16.4.linux-amd64.tar.gz
Descompacte o binário go para diretório /usr/local. Depois disso, exporte a variável de ambiente.
➜ ~ sudo tar -C /usr/local -xzf go1.16.4.linux-amd64.tar.gz
➜ ~ export PATH=$PATH:/usr/local/go/bin
Neste passo, foi criado um diretório chamado Yoda e depois executado o comando cd Yoda para adentrar no pasta.
➜ ~ mkdir Yoda
➜ ~ cd Yoda
Na sequência, crie um arquivo chamado main.go e siga os passos para configurar o ambiente.
➜ Yoda go mod init
➜ Yoda go get github.com/totalvoice/totalvoice-go
Por fim, crie um arquivo log.txt no diretório e liste os arquivos do mesmo.
➜ Yoda touch log.txt
➜ Yoda ls -l
total 8
-rw-rw-r-- 1 zenvia zenvia 113 mai 31 17:44 go.mod
-rw-rw-r-- 1 zenvia zenvia 245 mai 31 17:44 go.sum
Logo abaixo, temos o script que foi criado para gerar os alertas em caso de indisponibilidade da sua aplicação ou website.
package main
import (
"fmt"
"log"
"net/http"
"os"
"github.com/totalvoice/totalvoice-go"
)
func main() {
data, err := http.Get("https://www.zenvia.com")
if err != nil {
panic(err)
}
defer data.Body.Close()
if data.StatusCode == 200 {
fmt.Println("O website está operacional!")
} else {
token := totalvoice.NewTotalVoiceClient(os.Getenv("ZENVIA_TOKEN"))
request, err := token.TTS.Enviar(os.Getenv("NUMBER"), "Olá analista, o website está fora, favor tomar uma ação.", nil)
if err != nil {
panic(err)
}
fmt.Println("O website não está disponível!")
file, err := os.OpenFile("log.txt", os.O_APPEND|os.O_WRONLY, 0666)
if err != nil {
log.Fatal(err)
}
log.SetOutput(file)
log.Println(request)
}
}
Como é possível ver no código acima, acabei não expondo o meu token e o meu número de telefone no script. É extremamente recomendado que essas informações sejam exportas via variáveis de ambiente, assim evita-se o vazamento de informações confidenciais.
Executando o script.
➜ Yoda go run main.go
O website está operacional!
Tudo normal visto que o site está operacional no momento. Agora, vamos rodar o script caso o site esteja indisponível.
Conforme as imagens acima, é possível ver que o site não está mais operacional e o disparo do TTS ficou armazenado no arquivo log.txt.
Com isso, no meu smartphone, recebi o torpedo de voz avisando sobre a indisponibilidade do website.
Existe ainda a possibilidade de customizar os parâmetros da chamada e o tipo da voz. Para maiores detalhes sobre torpedo de voz e outros recursos, você pode consultar a nossa documentação.
*William Martin é SRE (Site Realibility Engineer) na ZENVIA | Confira o Blog do William.