
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 confirmaciones de entrega de SMS com o Go
Tempo de leitura: 7 minutos
Em posts anteriores, mostramos a vocês como enviar um SMS com o Go e receber um SMS com o Go. Esta postagem vai mostrar como receber confirmaciones de entrega das mensagens SMS enviadas da sua conta da Vonage.
Este tutorial abordará a configuração de um webhook acessível ao público e a funcionalidade para receber confirmações de entrega por SMS. 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 envia um SMS da sua conta, ela verifica se você configurou um webhook para o qual os comprovantes de entrega sejam encaminhados. Essa configuração é válida para todo o Account.
Se você tiver configurado um webhook, a Vonage enviará uma POST solicitação para esse webhook; portanto, é hora de criar o código para lidar com essa solicitação do webhook.
Crie um arquivo chamado delivery-receipt.go e insira o seguinte código:
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/webhooks/delivery-receipt", func(w http.ResponseWriter, r *http.Request) {
if err := r.ParseForm(); err != nil {
fmt.Fprintf(w, "ParseForm() err: %v", err)
return
}
fmt.Println("Delivery receipt status: " + r.FormValue("status"))
})
http.ListenAndServe(":8080", nil)
}Este código ficará à espera de qualquer solicitação enviada ao /webhooks/delivery-receipt ponto de extremidade e exibe a status parte do corpo da solicitação.
Expor o projeto à Internet
Seu endpoint de webhook precisa estar acessível publicamente pela internet para que as APIs da Vonage possam enviar solicitações a ele.
O Ngrok é a ferramenta que sugerimos para executar exemplos durante o desenvolvimento e é utilizado neste tutorial para expor o endpoint do webhook. Caso você ainda não tenha o Ngrok instalado, você pode encontrar uma ótima introdução a esse serviço e instruções sobre como instalá-lo em este tutorial.
Execute o ngrok com o comando abaixo:
Anote os URLs públicos que o ngrok cria para você; eles serão semelhantes ao exemplo abaixo:
Observação: Essa URL será diferente toda vez que você executar o comando, caso esteja usando o plano gratuito. Portanto, você precisará atualizar a delivery-receipt URL no painel sempre que executar o comando.
Configure seu Account da Vonage
Sua conta da Vonage precisa ser configurada para saber para onde enviar as solicitações de comprovante de entrega. Você pode adicionar a URL do webhook de comprovante de entrega na sua página de configurações da Vonage, na seção “Confirmações de entrega”. A imagem abaixo mostra um exemplo disso:
An example of the delivery receipts settings in the Vonage Dashboard
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 delivery-receipt.go arquivo. Execute o seguinte comando:
Agora, em outra janela do Terminal, execute o comando a seguir, substituindo YOUR_NUMBER pelo seu número de telefone para receber a mensagem SMS de teste.
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 Delivery Receipt:
{
"msisdn": "447700900000",
"to": "AcmeInc",
"network-code": "12345",
"messageId": "0A0000001234567B",
"price": "0.03330000",
"status": "delivered",
"scts": "2001011400",
"err-code": "0",
"api-key": "abcd1234",
"client-ref": "my-personal-reference",
"message-timestamp": "2020-01-01 12:00:00 +0000",
"timestamp": "1582650446",
"nonce": "ec11dd3e-1e7f-4db5-9467-82b02cd223b9",
"sig": "1A20E4E2069B609FDA6CECA9DE18D5CAFE99720DDB628BD6BE8B19942A336E1C"
} 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 sobre Go:
Não se esqueça de que, se tiver alguma dúvida, sugestão ou ideia que gostaria de compartilhar com a comunidade, fique à 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.