
Partager:
Benjamin Aronov est un défenseur des développeurs chez Vonage. C'est un bâtisseur de communauté qui a fait ses preuves, avec une formation en Ruby on Rails. Benjamin apprécie les plages de Tel Aviv, où il vit. Sa base à Tel Aviv lui permet de rencontrer et d'apprendre de certains des meilleurs fondateurs de startups du monde. En dehors de la technologie, Benjamin aime voyager à travers le monde à la recherche du parfait pain au chocolat.
Comment envoyer des SMS avec Ruby on Rails
Temps de lecture : 6 minutes
Malgré l'essor des applications de messagerie comme WhatsApp et Facebook Messenger, le SMS reste essentiel. Il fonctionne sur n'importe quel appareil mobile sans logiciel supplémentaire, suscite un plus grand engagement pour les messages urgents et constitue l'option la plus fiable puisqu'il ne nécessite pas de connexion internet.
Ce tutoriel montre comment envoyer des SMS dans une application Ruby on Rails en utilisant Vonage. Il s'agit du premier article de la série Vonage Ruby on Rails Quick Start, qui vous permet de commencer à utiliser les fonctionnalités de base de la suite API de Vonage dans votre application Ruby on Rails.
TL;DR Passez à l'étape suivante et trouvez tout le code de code de démarrage rapide sur GitHub
Notez que cette série de tutoriels utilise l'API Messages qui permet d'intégrer facilement une assistance omnicanale. Vonage propose également l'API SMS API.
A demonstration of the Vonage Rails Quickstart application sending an SMS message in real time.
Conditions préalables
Ruby et Rails installés sur votre machine. Pour toute question sur les conventions Rails, la documentation est très complète.
Un numéro virtuel Vonage.
Pour acheter un numéro de téléphone virtuel, rendez-vous sur votre tableau de bord API et suivez les étapes ci-dessous.
Purchase a phone number
Accédez à votre tableau de bord API
Naviguez vers CONSTRUIRE & GERER > Numbers > Acheter des Numbers.
Choisissez les attributs nécessaires et cliquez sur Rechercher
Cliquez sur le bouton Acheter à côté du numéro désiré et validez votre achat
Pour confirmer que vous avez acheté le numéro virtuel, allez dans le menu de navigation de gauche, sous CONSTRUIRE & GÉRER, cliquez sur Numéros, puis sur Vos Numéros
Comment créer une application Ruby on Rails
Ce tutoriel part du principe que vous avez une connaissance de base de Ruby et Rails, et s'en tient aux commandes nécessaires sans trop d'explications.
Tout d'abord, nous allons créer notre nouveau projet.
rails new vonage-rails-quickstartEnsuite, entrez dans le projet et ajoutez la gemme Vonage à votre Gemfile afin que nous puissions accéder au SDK de Vonage. Nous ajouterons également dotenv-rails pour pouvoir utiliser les variables d'environnement en toute sécurité.
#Gemfile
gem 'vonage'
gem 'dotenv-rails', groups: [:development, :test]Ensuite, lancez le bundler pour installer nos gems.
bundle installNous devons maintenant créer notre modèle SmsMessage, qui définit ses attributs et la manière dont ils sont stockés dans la base de données. Nous aurons besoin de 6 champs :
à: le destinataire du SMS.
de: l'expéditeur du SMS.
texte: le contenu du message.
statut: indique si un SMS a été délivré avec succès ou non. Voir plus d'informations dans la Référence API.
message_uuid: l'identifiant Vonage associé au message, qui sera important pour le suivi de l'état des messages.
is_inbound: si le message est envoyé ou reçu par notre application ; ceci sera important dans l'article de blog suivant.
rails g model SmsMessage to:string from:string text:text status:string message_uuid:string is_inbound:boolean
Nous devrons également mettre à jour notre base de données avec le nouveau modèle.
rails db:migrateCréons notre contrôleur pour gérer notre logique.
rails g controller OutboundSms new createEnfin, définissons nos routes pour les SMS sortants.
# config/routes.rb
Rails.application.routes.draw do
# For OutboundSms controller, new & create
get '/outbound_sms/new', to: 'outbound_sms#new', as: :new_outbound_sms
post '/outbound_sms', to: 'outbound_sms#create', as: :outbound_sms
end
Comment créer une application Vonage
Maintenant que notre application Rails est prête, nous devons également créer et configurer notre application Vonage. Tout d'abord, nous devons créer notre application dans le Tableau de bord Vonage. Donnez un nom à l'application et activez la fonction Messages. Pour l'instant, vous pouvez ajouter des URL de remplacement pour les webhooks. Nous les mettrons à jour dans d'autres articles de blog.
The Vonage Developer dashboard showing the creation of a new application with authentication, privacy, and messaging capabilities settings.
Assurez-vous de générer une clé privée, cliquez sur "Générer une clé publique et privée". Cela téléchargera un fichier private.key sur votre ordinateur. Déplacez ensuite le fichier private.key à la racine de votre application rails.
Lorsque votre application est créée, prenez note de l'identifiant de l'application. Vous aurez besoin de l'ID de l'application, de votre clé API et de votre secret API à l'étape suivante.
Ouvrez votre Page des paramètres de l'API pour accéder à votre clé et à votre secret API de Vonage, qui sont tous deux affichés comme indiqué dans la capture d'écran ci-dessous. La clé API se trouve en haut de la page, et pour accéder à votre secret API, veuillez vous référer à la sous-section "Secret du compte".
Remarque : si vous ne vous souvenez plus de votre secret API précédemment créé, cliquez sur "+ Créer un nouveau secret" et sauvegardez-le en toute sécurité.

Créer un fichier .env à la racine de votre application Rails :
touch .envEnfin, ajoutez les clés suivantes à vos informations d'identification.
#.env
VONAGE_APPLICATION_ID=''
VONAGE_PRIVATE_KEY='./private.key' Comment initialiser le client Ruby de Vonage
Le client API REST nous permet d'accéder facilement à 15 API de Vonage, et pas seulement à l'API Messages. Vous pouvez en savoir plus sur les API prises en charge.
Avant d'activer le client Ruby dans une application Rails complète, voyons comment nous pourrions l'utiliser plus généralement dans du code Ruby. Pour utiliser le client, il suffit d'initialiser une instance avec les informations de notre application stockées dans notre fichier d'environnement.
vonage = Vonage::Client.new(
application_id: ENV["VONAGE_APPLICATION_ID"],
private_key: ENV["VONAGE_PRIVATE_KEY"]
) Comment envoyer un SMS en Ruby
Maintenant que notre client est initialisé, l'envoi d'un SMS devient assez simple. Nous appelons la fonction messagerie pour indiquer au client d'utiliser l'API Messages, puis nous appelons l'envoi avec les champs requis.
# app/controllers/outbound_sms_controller.rb
response = vonage.messaging.send(
"message_type": "text",
"text": "Hello from Vonage!",
"to": "447700900000",
"from": "447700900001",
"channel": "sms"
)
Vous pouvez voir toutes les options pour les différents canaux et champs dans la section Référence API.
Envoi de SMS dans une application Ruby on Rails
Maintenant que nous avons vu comment utiliser le client Ruby de Vonage pour envoyer des SMS, nous allons intégrer une fonctionnalité Ruby on Rails d'envoi de SMS dans notre application à l'aide d'un simple formulaire et d'un contrôleur. Nous aurons besoin d'une belle interface utilisateur pour gérer la fonction à, deet les texte et de texte. Vous pouvez copier et ajouter le formulaire à votre /app/views/outbound_sms/new.html.erb et aux feuilles de style CSS associé.
A Vonage-powered SMS form where users can input a sender's phone number or name, the recipient's phone number, and a message before sending an SMS.
Remarque : Tous les pays n'acceptent pas un nom comme champ "à" valide.
Maintenant, mettons en œuvre la logique nécessaire au fonctionnement de notre formulaire. Tout d'abord, nous devons créer une instance SMS vide pour charger le formulaire. Ensuite, nous appelons la méthode create qui enregistre le SMS dans notre base de données et l'envoie via la méthode deliver pour l'envoyer.
#app/controllers/outbound_sms_controller.rb
def new
@sms_message = SmsMessage.new
end
def create
# Create a SMS record to be stored in the database
@sms_message = SmsMessage.new(safe_params)
if @sms_message.save
deliver @sms_message
redirect_to :new_outbound_sms, notice: 'SMS Sent'
else
flash[:alert] = 'Something went wrong'
render :new
end
end
private
def safe_params
params.require(:sms_message).permit(:to, :from, :text)
endLes délivrer est en grande partie la même que celle que nous avons utilisée dans la section précédente, sauf qu'elle utilise maintenant les messages message et la gestion de la réponse de l'API.
Si le message est envoyé avec succès, il renvoie un code d'état 202 ainsi que l'UUID du message. Cet UUID permet de suivre l'état de la livraison à l'aide de la fonction Statut du messageque nous aborderons dans le prochain article.
def deliver(sms_message)
message = vonage.messaging.sms(message: sms_message.text)
response = vonage.messaging.send(
from: sms_message.from,
to: sms_message.to,
**message
)
if response.http_response.code == '202'
sms_message.update(
message_uuid: response.entity.attributes[:message_uuid]
)
end
end> Voir le fichier complet outbound_sms_controller.rb complet.
Démarrez maintenant votre serveur rails :
rails s
Et ouvrez http://localhost:3000/outbound_sms/new dans votre navigateur. Vous pouvez commencer à envoyer des SMS via votre application Ruby on Rails !
Conclusion
Vous avez réussi ! Vous avez appris à créer une application Vonage, à initialiser et à utiliser le client Ruby de Vonage, et à envoyer avec succès des SMS à partir d'une application Ruby on Rails. Dans les prochains articles, nous ajouterons d'autres fonctions SMS et Voice à cette application.
Si vous avez des questions ou des suggestions pour plus de contenu Ruby, envoyez-nous un message sur le Communauté Slack. Vous pouvez également rester au courant de notre contenu et de nos événements pour les développeurs sur X, anciennement connu sous le nom de Twitter.
Partager:
Benjamin Aronov est un défenseur des développeurs chez Vonage. C'est un bâtisseur de communauté qui a fait ses preuves, avec une formation en Ruby on Rails. Benjamin apprécie les plages de Tel Aviv, où il vit. Sa base à Tel Aviv lui permet de rencontrer et d'apprendre de certains des meilleurs fondateurs de startups du monde. En dehors de la technologie, Benjamin aime voyager à travers le monde à la recherche du parfait pain au chocolat.