https://d226lax1qjow5r.cloudfront.net/blog/blogposts/how-to-send-sms-with-go-dr/TW_Go.jpg

Cómo enviar SMS con Go

Publicado el April 19, 2021

Tiempo de lectura: 4 minutos

En esta entrada de blog, le mostraremos cómo utilizar el Vonage Go SDK para enviar un SMS usando Go en menos de 20 líneas de código.

Requisitos previos

Para seguir este post necesitarás tener Golang instalado en tu máquina de desarrollo. Las instrucciones de instalación se pueden encontrar en el sitio web oficial de Golang.

Alternativamente, si eres nuevo en Go, o no quieres pasar por el proceso de instalación, puedes trabajar directamente en el Zona de juegos Golang en su lugar.

Uso del SDK Vonage Go

Abre tu editor y crea un nuevo archivo llamado main.go. A continuación, crea los fundamentos de una aplicación Go escribiendo (o copiando) el siguiente código:

package main

import (
	"fmt"
	"github.com/vonage/vonage-go-sdk"
)

func main() {

}

Nota: Si guardas main.go y los archivos de la sentencia import desaparecen, no se preocupe, volverán una vez que los utilice dentro de la función main() función.

Ahora es el momento de poner un poco de carne en esos huesos e instanciar el SDK Vonage Go para que realmente puedas hacer que haga cosas.

Dentro de la función main() añada lo siguiente:

auth := vonage.CreateAuthFromKeySecret(API_KEY, API_SECRET)
smsClient := vonage.NewSMSClient(auth)
response, _ := smsClient.Send("44777000000", "44777000777", "Hi from golang", vonage.SMSOpts{})

Aquí ocurren dos cosas.

En primer lugar, se crea un objeto auth que combina la clave API y el secreto utilizando una función de ayuda que se asegurará de que todo tenga el formato correcto.

Nota: Puedes encontrar tu clave y secreto de API ingresando a tu Panel de Vonage. Si aún no tienes una Account, puedes registrarte aquí y obtener un crédito inicial gratis para ejecutar este código.

En segundo lugar, se instanciará un nuevo smsClient que contendrá toda la funcionalidad del Vonage Go SDK proporciona. Tu objeto auth se pasa a este objeto.

Con esto en su lugar, ahora puedes realizar acciones en la API de Vonage, como enviar un SMS.

Enviar mensajes SMS con Go

Con el cliente API de Vonage listo, tu código ahora se verá así:

package main

import (
	"fmt"
	"github.com/vonage/vonage-go-sdk"
)

func main() {
    auth := vonage.CreateAuthFromKeySecret(API_KEY, API_SECRET)
    smsClient := vonage.NewSMSClient(auth)
    response, _ := smsClient.Send("44777000000", "44777000777", "Hi from golang", vonage.SMSOpts{})
}

Para enviar un SMS con Go es necesario pasar smsClient toda la información que el SMS necesita para llegar a su destino.

Como mínimo, debe incluir el número al que debe enviarse el SMS, el número desde el que se envía y el texto que debe aparecer.

El número To puede ser su propio número, pero el número From número debe ser un número con capacidad para SMS comprado a través de tu Panel de Vonage.

Ahora lo único que nos queda por hacer es decirle a nuestra aplicación que envíe el SMS. Esto se hace utilizando el método Send proporcionado por el cliente de la API.

El envío de SMS se realiza en una sola línea:

response, _ := smsClient.Send("44777000000", "44777000777", "Hi from golang", vonage.SMSOpts{})

Por último, añade un poco de comprobación de errores y salida de respuesta:

if response.Messages[0].Status == "0" {
    fmt.Println("Message sent")
}

Tu archivo `main.go final debería tener este aspecto:

package main

import (
	"fmt"
	"github.com/vonage/vonage-go-sdk"
)

func main() {
	auth := vonage.CreateAuthFromKeySecret(API_KEY, API_SECRET)
	smsClient := vonage.NewSMSClient(auth)
	response, _ := smsClient.Send("44777000000", "44777000777", "Hi from golang", vonage.SMSOpts{})

	if response.Messages[0].Status == "0" {
		fmt.Println("Message sent")
	}
}

Ahora ya puedes enviar el SMS. Dirígete a tu terminal y desde dentro de la carpeta en la que estés trabajando ejecuta:

go run main.go

Si todo ha funcionado verás Message Sent de nuevo en la pantalla justo antes de que suene el familiar sonido de la notificación de SMS que te indica que lo has conseguido.

¿Qué hacer a partir de ahora?

El siguiente cambio que puede hacer en el código anterior es hacerlo un poco más seguro eliminando la clave de API, el secreto de API y los números de teléfono.

Una buena forma de hacerlo es moverlos a variables de entorno que se almacenan en un archivo .env archivo.

Intente implementarlo utilizando la función godotenv y refuerce rápidamente su seguridad.

Lecturas complementarias

Si enviar un SMS con Go te ha entusiasmado sobre qué otros elementos de comunicación podrías añadir a tu aplicación, entonces echa un vistazo a los ejemplos en el Vonage Go SDK repositorio GitHub.

Allí encontrarás código para usar muchos otros aspectos de las API de Vonage, como realizar llamadas telefónicas, recibir mensajes SMS y verificar números de teléfono.

Como siempre, estamos ansiosos por saber de ti. Si tienes preguntas sobre el uso de Go con las API de Vonage, considera unirte a nuestra Comunidad de Vonage en Slack y hacer tus preguntas allí.

Las contribuciones al SDK también son bienvenidas, así que si quieres ayudarnos a ampliar su alcance, no dudes en enviar una solicitud en GitHub.

Compartir:

https://a.storyblok.com/f/270183/250x250/d0444194cd/martyn.png
Martyn DaviesAntiguos alumnos de Vonage

Antiguo Director de Educación para Desarrolladores en Vonage. Con experiencia como desarrollador creativo, gestor de productos y organizador de jornadas de hacking, Martyn lleva trabajando como defensor de la tecnología desde 2012, tras haber pasado anteriormente por el mundo de la radiodifusión y las grandes discográficas. Educa y capacita a desarrolladores de todo el mundo.