
Partager:
Ben est un développeur en seconde carrière qui a auparavant passé une décennie dans les domaines de la formation pour adultes, de l'organisation communautaire et de la gestion d'organisations à but non lucratif. Il a travaillé comme défenseur des développeurs pour Vonage. Il écrit régulièrement sur l'intersection du développement communautaire et de la technologie. Originaire de Californie du Sud et ayant longtemps vécu à New York, Ben réside aujourd'hui près de Tel Aviv, en Israël.
Comment envoyer des SMS avec Elixir
Les SMS continuent d'être le moteur d'une grande partie de nos communications mondiales aujourd'hui, et avec le nouveau SDK expérimental de Nexmo Elixir SDK expérimental, vous pouvez commencer à envoyer des SMS en Elixir. Tout ce dont vous avez besoin, c'est d'un Account Nexmo, d'un numéro de téléphone virtuel et de quelques lignes de code.
Dans ce tutoriel, nous allons parcourir les étapes pour envoyer votre premier SMS en Elixir. Vous n'avez besoin que d'une connaissance de base d'Elixir pour commencer - nous ferons le reste ensemble !
Si vous préférez, vous pouvez également cloner une version entièrement fonctionnelle de ce code sur GitHub.
Conditions préalables
Pour ce tutoriel, vous aurez besoin des éléments suivants :
Elixir installé sur votre ordinateur
Vonage API Account
To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.
Vos références et votre numéro de téléphone Nexmo
Pour envoyer un SMS, vous devez obtenir la clé et le secret de votre API Nexmo. Vous devez également configurer un numéro de téléphone virtuel provisionné par Nexmo. Faisons cela ensemble maintenant.
Vos identifiants API
Une fois que vous vous êtes connecté au Nexmo Dashboardvous verrez vos identifiants API tout en haut de la page.
API credentials in the Vonage Developer Dashboard
Prenez-en note et conservez-les en lieu sûr, car nous les utiliserons dans un instant.
Votre numéro de téléphone virtuel
L'étape suivante pour préparer l'envoi d'un SMS consiste à fournir un numéro de téléphone virtuel. Dans le tableau de bord Nexmo, vous verrez un lien déroulant appelé Numbers dans la barre latérale gauche. Lorsque vous cliquez dessus, le menu déroulant se développe et vous voyez plusieurs options. Cliquez sur l'option intitulée Buy Numbers.
Buy numbers menu option
Une fois que vous aurez accédé à la section Buy Numbers vous pourrez rechercher un numéro de téléphone sur la base des critères suivants Country, Features, Type. Vous pouvez également restreindre la recherche pour n'afficher que les numéros de téléphone comportant des combinaisons de chiffres spécifiques.
Buy Numbers interface
Recherchez un numéro de téléphone avec un indicatif de pays qui vous convient. Vous n'avez besoin que de SMS pour Features et d'un Type de Mobile. Après avoir cliqué sur le bouton Search vous verrez apparaître une liste de Numbers potentiels. Vous pouvez choisir celui qui vous convient en cliquant sur le bouton de couleur orange Buy à droite.
Buy number buttons in list of available numbers
Vous avez maintenant provisionné avec succès un numéro de téléphone virtuel Nexmo. Comme vous l'avez fait avec vos identifiants API, copiez votre nouveau numéro de téléphone dans un endroit sûr. Nous l'utiliserons dans notre prochaine étape pour envoyer notre premier SMS avec Elixir.
Envoyer un SMS avec Elixir
Mise en place de la structure de notre code
A partir de votre terminal, créez un nouveau répertoire pour héberger votre projet Elixir, puis naviguez dans ce répertoire. Pour les besoins de ce tutoriel, nous l'appellerons send-sms-elixir.
Nous aurons besoin de trois fichiers pour notre projet. Pour rappel, si vous prévoyez de livrer ce projet au contrôle de version public, assurez-vous de ne pas archiver votre fichier .env car il contient vos informations d'identification sensibles.
Une fois que vous avez terminé, vous devriez avoir trois fichiers dans votre dossier ./send-sms-elixir dans votre dossier
├── mix.exs
├── send-sms.ex
├── .env Définir notre fichier de mixage
Chaque projet Elixir qui a une dépendance externe doit créer un fichier Mix qui installe cette dépendance dans votre projet. Mix, pour ceux qui ne le connaissent pas, est similaire à Bundler en Ruby ou à npm en Node.js.
Dans notre fichier mix.exs nous définirons le nom de notre projet et deux dépendances, qui sont le SDK expérimental Nexmo Elixir et Envy, un paquet Hex qui nous aide à gérer nos variables d'environnement :
defmodule SendSms.Mixfile do
use Mix.Project
def project do
[app: :send_sms,
version: "0.0.1",
deps: deps]
end
defp deps do
[
{:nexmo, "0.4.0", hex: :nexmo_elixir},
{:envy, "~> 1.1.1"}
]
end
end
Définition des variables d'environnement
Nous avons précédemment créé notre numéro de téléphone virtuel Nexmo et obtenu nos identifiants API Nexmo. Nous allons maintenant les intégrer dans notre application en les stockant dans notre fichier .env fichier. Dans votre fichier .env mettez ce qui suit, en fournissant votre clé API, votre secret API et votre numéro de téléphone Nexmo aux endroits appropriés :
NEXMO_API_KEY=
NEXMO_API_SECRET=
NEXMO_NUMBER=
SMS_API_ENDPOINT="https://rest.nexmo.com/sms/json"En plus de notre clé API, de notre secret et de notre numéro de téléphone, nous fournissons également le point de terminaison de l'API SMS Nexmo dans notre fichier .env pour qu'il soit utilisé par le SDK.
Définir notre code Elixir
Nous sommes maintenant prêts à créer le code qui enverra notre premier SMS ! Ouvrez le fichier send_sms.ex et ajoutez ce qui suit :
defmodule SendSms do
use Application
def start(_type, _args) do
unless Mix.env == :prod do
Envy.auto_load
end
end
def send_msg(to_number, message)
Nexmo.Sms.send(
from: System.get_env("NEXMO_NUMBER"),
to: to_number,
text: message
)
end
endDans ce qui précède, nous définissons un module appelé SendSms qui possède une fonction SendSms.start/2 qui charge nos variables d'environnement à partir du fichier .env à l'aide du paquet Envy.
Nous créons ensuite une deuxième fonction appelée SendSms.send/2 qui accepte comme argument le numéro du destinataire auquel nous souhaitons envoyer le texte et le message proprement dit. Dans la fonction, nous appelons la fonction Nexmo Elixir SDK Nexmo.Sms.send/1 et lui transmettons notre numéro virtuel Nexmo (stocké en tant que variable d'environnement), l'argument to_numberet le message.
Voilà, c'est fait ! Nous sommes maintenant prêts à exécuter notre code et à envoyer le message.
Exécution de l'application
La manière la plus simple d'exécuter votre application et d'envoyer un SMS est de charger votre projet dans iex, un shell Elixir interactif.
Commençons par compiler notre fichier send_sms.ex ce qui rendra la fonction send_msg/2 dans l'interpréteur de commandes. Pour le compiler, tout ce que nous avons à faire est de l'exécuter depuis la ligne de commande : elixirc send_sms.ex. Cela ne devrait prendre qu'un instant, et une fois que c'est terminé, nous pouvons exécuter notre application dans iex.
Pour exécuter votre projet dans iex à partir de votre ligne de commande, exécutez ce qui suit : iex -S mix. Cela démarrera votre projet et le lancera dans le shell.
Vous verrez une invite de commande qui ressemble à ceci :
Interactive Elixir (1.9.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)>
A ce stade, vous pouvez envoyer votre SMS !
iex(1)> SendSms.send_msg(RECIPIENT_NUMBER, "This is powered by Nexmo on Elixir!")
Vous recevrez en retour de l'API SMS Nexmo la confirmation que vous avez envoyé le message avec succès, avec un code d'état HTTP de 200.
Félicitations, vous avez réussi !
Pour en savoir plus
Si vous souhaitez en savoir plus sur les SMS et Nexmo, n'hésitez pas à consulter les documents suivants :
Partager:
Ben est un développeur en seconde carrière qui a auparavant passé une décennie dans les domaines de la formation pour adultes, de l'organisation communautaire et de la gestion d'organisations à but non lucratif. Il a travaillé comme défenseur des développeurs pour Vonage. Il écrit régulièrement sur l'intersection du développement communautaire et de la technologie. Originaire de Californie du Sud et ayant longtemps vécu à New York, Ben réside aujourd'hui près de Tel Aviv, en Israël.
