https://a.storyblok.com/f/270183/1368x665/786fc6d717/25mar_dev-blog_ruby-sms.png

Comment envoyer des SMS avec Ruby on Rails

Publié le April 15, 2025

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 screen recording of a Ruby on Rails application labeled “Send an SMS,” showing a user entering a sender’s number, a recipient’s number, and a text message. The message “Ruby on Rails Rocks!” appears in the recipient’s messaging app.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.

Steps on how to purchase a phone number from the dashboard, from selecting the number and confirming the selection.Purchase a phone number

  1. Accédez à votre tableau de bord API

  2. Naviguez vers CONSTRUIRE & GERER > Numbers > Acheter des Numbers.

  3. Choisissez les attributs nécessaires et cliquez sur Rechercher

  4. Cliquez sur le bouton Acheter à côté du numéro désiré et validez votre achat

  5. 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-quickstart

Ensuite, 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 install

Nous 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:migrate

Créons notre contrôleur pour gérer notre logique.

rails g controller OutboundSms new create

Enfin, 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.

A user interface for creating a new application in the Vonage Developer dashboard. Fields include the application name, API key, authentication options, privacy settings, and messaging capabilities with inbound and status URLs. A toggle for AI data usage is set to off, and the "Generate new application" button is visible.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 .env

Enfin, 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 user interface labeled "Send an SMS" with fields for the sender's phone number or name, the recipient's phone number or name, and a text message input box. A purple "Send" button is displayed at the bottom.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)
 end

Les 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:

https://a.storyblok.com/f/270183/384x384/e4e7d1452e/benjamin-aronov.png
Benjamin AronovDéfenseur des développeurs

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.