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

Comment envoyer des SMS avec Go

Publié le April 19, 2021

Temps de lecture : 4 minutes

Dans cet article de blog, nous vous montrerons comment utiliser le Vonage Go SDK pour envoyer un SMS à l'aide de Go en moins de 20 lignes de code.

Conditions préalables

Pour suivre cet article, Golang doit être installé sur votre machine de développement. Les instructions d'installation peuvent être trouvées sur le site officiel de Golang.

Alternativement, si vous êtes nouveau à Go, ou si vous ne voulez pas passer par le processus d'installation, vous pouvez travailler directement dans le Golang Playground à la place.

Utilisation du SDK Go de Vonage

Lancez votre éditeur et créez un nouveau fichier appelé main.go. Ensuite, mettez en place les bases d'une application Go en tapant (ou en copiant) le code suivant :

package main

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

func main() {

}

Remarque : si vous enregistrez main.go et que les fichiers de la déclaration d'importation disparaissent, ne vous inquiétez pas, ils reviendront une fois que vous les aurez utilisés dans la fonction main() dans la fonction

Il est maintenant temps de mettre un peu de viande sur ces os et d'instancier le SDK Vonage Go afin de pouvoir lui faire faire des choses.

A l'intérieur de la fonction main() ajouter ce qui suit :

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

Il y a deux choses qui se passent ici.

Tout d'abord, vous créez un objet auth qui combine votre clé API et votre secret à l'aide d'une fonction d'aide qui s'assurera que tout est formaté correctement.

Note : Votre clé API et votre secret peuvent être trouvés en vous connectant à votre tableau de bord Vonage. Si vous n'avez pas encore de compte, vous pouvez vous inscrire ici et obtenir un crédit de démarrage gratuit pour exécuter ce code !

Deuxièmement, vous instanciez un nouveau smsClient qui contiendra toutes les fonctionnalités du Vonage Go SDK de Vonage Go. Votre objet auth est passé dans cet objet.

Vous pouvez désormais effectuer des actions sur l'API de Vonage, comme l'envoi d'un SMS.

Envoyer des SMS avec Go

Avec le client API Vonage prêt à l'emploi, votre code ressemblera maintenant à ceci :

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{})
}

Pour envoyer un SMS avec Go, vous devez transmettre smsClient toutes les informations dont le SMS a besoin pour arriver à destination.

Vous devez au minimum indiquer le numéro auquel le SMS doit être envoyé, le numéro à partir duquel il est envoyé et le texte à afficher.

Le numéro To peut être votre propre numéro, mais le numéro From doit être un numéro capable d'envoyer des SMS, acheté par l'intermédiaire de votre tableau de bord Vonage.

Il ne reste plus qu'à indiquer à notre application de envoyer le SMS. Cela se fait à l'aide de la méthode Send fournie par le client de l'API.

L'envoi du SMS se fait en une seule ligne :

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

Enfin, ajoutez une vérification rapide des erreurs et des réponses :

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

Votre fichier `main.go final devrait ressembler à ceci :

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")
	}
}

Maintenant, tout est prêt pour envoyer ce SMS ! Dirigez-vous vers votre terminal et, à l'intérieur du dossier dans lequel vous travaillez, exécutez :

go run main.go

Si tout a fonctionné, vous verrez Message Sent s'affiche à nouveau à l'écran, juste avant que le son familier de votre notification SMS ne retentisse, signalant votre réussite.

Que faire maintenant ?

La prochaine modification que vous pouvez apporter au code ci-dessus consiste à le rendre un peu plus sûr en supprimant la clé API codée en dur, le secret API et les numéros de téléphone.

Une bonne façon de le faire est de les déplacer dans des variables d'environnement qui sont stockées dans un fichier .env dans un fichier

Essayez d'implémenter ceci en utilisant l'option godotenv et renforcez rapidement votre sécurité.

Pour en savoir plus

Si l'envoi d'un SMS avec Go vous a donné envie de découvrir les autres éléments de communication que vous pourriez ajouter à votre application, jetez un coup d'œil aux exemples du SDK Go de Vonage sur GitHub.

Vous y trouverez le code permettant d'utiliser de nombreux autres aspects des API de Vonage, tels que l'émission d'appels téléphoniques, la réception de messages SMS et la vérification des numéros de téléphone.

Comme toujours, nous sommes impatients de vous entendre. Si vous avez des questions sur l'utilisation de Go avec les API de Vonage, envisagez de rejoindre notre Communauté Vonage sur Slack et d'y poser vos questions.

Les contributions au SDK sont également les bienvenues, donc si vous souhaitez nous aider à étendre son champ d'application, n'hésitez pas à faire une demande d'extension sur GitHub.

Partager:

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

Ancien directeur de la formation des développeurs chez Vonage. Avec une expérience de développeur créatif, de gestionnaire de produits et d'organisateur de journées de hacking, Martyn travaille comme défenseur de la technologie depuis 2012, après avoir travaillé dans le secteur de la radiodiffusion et dans de grandes maisons de disques. Il forme et responsabilise les développeurs du monde entier.