
Compartilhar:
Ex-educador de desenvolvedores na @Vonage. Tenho formação em PHP, mas não me limito a uma única linguagem. Sou um jogador ávido e entusiasta do Raspberry Pi. Costumo praticar escalada em rocha em centros de escalada indoor.
Receba SMS recebidas com o Go
Em um post anterior, mostramos a vocês como enviar um SMS com o Go. Este post vai mostrar como receber mensagens SMS com seu número virtual da Vonage.
É necessário um webhook acessível ao público, configurado em sua conta da Vonage, para receber SMS de entrada. Este tutorial abordará o processo de configuração de um webhook acessível ao público e a funcionalidade para receber mensagens SMS de entrada. Você pode encontrar o código utilizado neste tutorial em nosso Repositório de Trechos de Código Go.
Pré-requisitos
Configurar o código
Quando a Vonage recebe um SMS no seu número virtual, ela verifica se você configurou um webhook para encaminhar esse SMS. Essa configuração pode ser válida para toda a conta ou específica para um determinado número de telefone virtual.
Se você tiver configurado um webhook, a Vonage enviará uma GET solicitação. Portanto, é hora de criar o código que irá processar essa solicitação de webhook.
Crie um arquivo chamado inbound-sms.go e insira o seguinte código:
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/webhooks/inbound-sms", func(w http.ResponseWriter, r *http.Request) {
params := r.URL.Query()
fmt.Println("From: " + params["msisdn"][0] + ", message: " + string(params["text"][0]))
})
http.ListenAndServe(":8080", nil)
}Este código ficará à espera de qualquer solicitação enviada ao /webhooks/inbound-sms ponto de extremidade e exibe o msisdn e text parte do corpo da solicitação.
Expor o projeto à Internet
Para que as APIs da Vonage possam enviar solicitações ao seu endpoint de webhook, ele deve estar acessível publicamente pela internet.
O Ngrok é nossa ferramenta preferida para executar exemplos durante o desenvolvimento. Por isso, o Ngrok é o serviço escolhido para este tutorial. Caso o Ngrok não esteja instalado, você pode encontrar uma ótima introdução ao Ngrok e instruções sobre como instalá-lo em este tutorial.
Inicie o Ngrok com o seguinte comando:
Anote os URLs públicos que o ngrok cria para você. Eles serão semelhantes aos seguintes (mas diferentes deles):
Essa URL será diferente sempre que você executar o comando, caso esteja usando o plano gratuito. Portanto, você precisará atualizar a inbound-sms URL no painel sempre que executar o comando.
Adquira um número da Vonage
Caso você ainda não tenha adquirido um número de telefone virtual da Vonage para acompanhar este tutorial, compre um agora. Você pode fazer isso no painel do desenvolvedor; no entanto, há outra opção, que é a CLI da Nexmo. A CLI pode ajudar na execução das tarefas de gerenciamento de Account sem que você precise sair do seu Terminal.
O comando abaixo procura números de telefone capazes de enviar e receber SMS, além de verificar se o número pertence ao país de sua escolha. O código de país de dois caracteres indica o país; por exemplo, para os EUA, seria US.
Escolha um dos números de telefone da lista exibida ao executar o comando. Substitua VONAGE_VIRTUAL_NUMBER no comando abaixo pelo número de telefone escolhido e execute o comando.
Configure seu Account da Vonage
Seu novo número virtual da Vonage e a URL do seu Webhook precisam ser vinculados para que a Vonage saiba para onde enviar as mensagens SMS recebidas.
Assim como na etapa anterior, você poderia adicionar a URL do seu webhook ao seu número virtual da Vonage, mas este tutorial mostrará um exemplo de como fazer essa alteração pelo portal da web.
Antes de iniciar a configuração, observe o seguinte:
VONAGE_VIRTUAL_NUMBER: O número que você está tentando usar.WEBHOOK_URL: Sua URL do Ngrok, seguida de/webhooks/inbound-sms, de modo que deve ficar mais ou menos assim:https://56feb86007e8.ngrok.io/webhooks/inbound-sms
Acesse página “Numbers” no seu painel.
Clique no ícone “Editar” (que se parece com uma caneta) na coluna “Gerenciar”. Na janela pop-up, em SMS > URL do webhook de entrada, cole WEBHOOK_URL e clique em “Salvar”.
Hora do teste
Com Ngrok já em execução, em uma nova janela do Terminal, certifique-se de ter navegado até o diretório do projeto que contém seu receive-sms.go arquivo. Execute o seguinte comando:
Agora, pelo seu celular, você pode enviar uma mensagem de texto para o seu VONAGE_VIRTUAL_NUMBER.
Se você verificar a janela do Terminal onde executou go run ./, você deverá ver uma linha semelhante à que aparece abaixo:
O webhook recebe mais campos do que os exibidos acima. Você pode ver uma lista completa desses campos, com alguns exemplos, a seguir. O exemplo abaixo foi retirado da documentação da API na seção Inbound SMS:
{
"api-key": "abcd1234",
"msisdn": "447700900001",
"to": "447700900000",
"messageId": "0A0000000123ABCD1",
"text": "Hello world",
"type": "text",
"keyword": "TEST",
"message-timestamp": "2020-01-01 12:00:00 +0000"
} Leitura complementar
Você pode encontrar o código apresentado neste tutorial no repositório de trechos de código Go.
A seguir, apresentamos alguns outros tutoriais que escrevemos, seja sobre Go, seja sobre como receber mensagens SMS:
Não se esqueça: se tiver alguma dúvida, sugestão ou ideia que gostaria de compartilhar com a comunidade, sinta-se à vontade para participar do nosso espaço de trabalho do Slack da Comunidade. Adoraria receber feedback de quem já colocou este tutorial em prática e saber como está o seu projeto.