
Teilen Sie:
Benjamin Aronov ist ein Entwickler-Befürworter bei Vonage. Er ist ein bewährter Community Builder mit einem Hintergrund in Ruby on Rails. Benjamin genießt die Strände von Tel Aviv, das er sein Zuhause nennt. Von Tel Aviv aus kann er einige der besten Startup-Gründer der Welt treffen und von ihnen lernen. Außerhalb der Tech-Branche reist Benjamin gerne um die Welt auf der Suche nach dem perfekten Pain au Chocolat.
Wie man SMS-Nachrichten mit Ruby on Rails versendet
Lesedauer: 6 Minuten
Trotz des Aufstiegs von Messaging-Apps wie WhatsApp und Facebook Messenger bleibt die SMS unverzichtbar. Sie funktioniert auf jedem mobilen Gerät ohne zusätzliche Software, bietet ein höheres Engagement für zeitkritische Nachrichten und ist die zuverlässigste Option, da sie keine Internetverbindung erfordert.
Dieses Tutorial zeigt, wie man SMS-Nachrichten in einer Ruby on Rails-Anwendung mit Vonage versendet. Dies ist der erste Beitrag im Rahmen der Vonage Ruby on Rails Quick Start Serie, die Ihnen den Einstieg in die Kernfunktionalität der Vonage API Suite in Ihrer Ruby on Rails Anwendung ermöglicht.
TL;DR Überspringen Sie den Anfang und finden Sie den gesamten Schnellstart-Code auf GitHub
Beachten Sie, dass diese Tutorial-Serie die Nachrichten-API verwendet, die eine einfache Integration von Omnichannel-Support ermöglicht. Vonage bietet auch die SMS-API AN.
A demonstration of the Vonage Rails Quickstart application sending an SMS message in real time.
Voraussetzungen
Ruby und Rails installiert auf Ihrem Rechner. Für alle Fragen zu den Rails-Konventionen ist die Dokumentation sehr ausführlich.
Eine virtuelle Nummer von Vonage.
Um eine virtuelle Rufnummer zu kaufen, gehen Sie zu Ihrem API-Dashboard und befolgen Sie die unten aufgeführten Schritte.
Purchase a phone number
Gehen Sie zu Ihrem API-Dashboard
Navigieren Sie zu BUILD & MANAGE > Numbers > Buy Numbers.
Wählen Sie die gewünschten Attribute und klicken Sie dann auf Suchen
Klicken Sie auf die Schaltfläche Kaufen neben der gewünschten Nummer und bestätigen Sie Ihren Kauf.
Um zu bestätigen, dass Sie die virtuelle Nummer erworben haben, gehen Sie im linken Navigationsmenü unter BUILD & MANAGE auf Numbers und dann auf Your Numbers
Wie man eine Ruby on Rails-Anwendung erstellt
In diesem Tutorial wird davon ausgegangen, dass Sie über ein grundlegendes Verständnis von Ruby und Rails verfügen, wobei wir uns auf die erforderlichen Befehle beschränken, ohne zu viel zu erklären.
Zunächst erstellen wir unser neues Projekt.
rails new vonage-rails-quickstartAls Nächstes gehen Sie in das Projekt und fügen das Vonage-Gem zu Ihrem Gemfile hinzu, damit wir auf das Vonage-SDK zugreifen können. Wir fügen auch dotenv-rails hinzu, damit wir Umgebungsvariablen sicher verwenden können.
#Gemfile
gem 'vonage'
gem 'dotenv-rails', groups: [:development, :test]Führen Sie dann den Bundler aus, um unsere Gems zu installieren.
bundle installNun müssen wir unser SmsMessage-Modell erstellen, das die Attribute und deren Speicherung in der Datenbank definiert. Wir werden 6 Felder benötigen:
an: den Empfänger der SMS.
von: der Absender der SMS.
Text: der Inhalt der Nachricht.
StatusStatus: ob eine SMS erfolgreich zugestellt wurde oder nicht. Weitere Informationen finden Sie in der API-Referenz.
nachricht_uuidmessage_uuid: die der Nachricht zugeordnete Vonage-ID, die für die Verfolgung des Status von Nachrichten wichtig ist.
ist_eingehendis_inbound: ob die Nachricht von unserer Anwendung gesendet oder empfangen wird; dies wird im folgenden Blogbeitrag von Bedeutung sein.
rails g model SmsMessage to:string from:string text:text status:string message_uuid:string is_inbound:boolean
Außerdem müssen wir unsere Datenbank mit dem neuen Modell aktualisieren.
rails db:migrateErstellen wir unseren Controller, der unsere Logik verarbeitet.
rails g controller OutboundSms new createSchließlich müssen wir noch unsere Routen für ausgehende SMS festlegen.
# 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
So erstellen Sie eine Vonage-Anwendung
Jetzt, wo unsere Rails-App fertig ist, müssen wir auch unsere Vonage-Anwendung erstellen und einrichten. Zuerst müssen wir unsere App im Dashboard von Vonage. Geben Sie der App einen Namen und schalten Sie die Nachrichtenfunktion ein. Sie können vorerst Platzhalter-URLs für die Webhooks hinzufügen. Wir werden diese in weiteren Blogbeiträgen aktualisieren.
The Vonage Developer dashboard showing the creation of a new application with authentication, privacy, and messaging capabilities settings.
Stellen Sie sicher, dass Sie einen privaten Schlüssel erzeugen, indem Sie auf "Öffentlichen und privaten Schlüssel erzeugen" klicken. Dadurch wird eine private.key-Datei auf Ihren Computer heruntergeladen. Verschieben Sie die Datei "private.key" dann in das Stammverzeichnis Ihrer Rails-Anwendung.
Notieren Sie sich die Anwendungs-ID, wenn Ihre Anwendung erstellt wurde. Sie benötigen die Anwendungs-ID, Ihren API-Schlüssel und Ihr API-Geheimnis im nächsten Schritt.
Öffnen Sie Ihr API-Dashboard um auf Ihren Vonage API-Schlüssel und Ihr Geheimnis zuzugreifen. Beide finden Sie auf der Startseite, wie im Screenshot unten gezeigt.
API Key and API Secret
Erstellen Sie eine .env Datei im Stammverzeichnis Ihrer Rails-Anwendung:
touch .envFügen Sie abschließend die folgenden Schlüssel mit Ihren Anmeldeinformationen hinzu.
#.env
VONAGE_APPLICATION_ID=''
VONAGE_PRIVATE_KEY='./private.key' Initialisierung des Vonage Ruby-Clients
Der REST-API-Client ermöglicht uns einen einfachen Zugriff auf 15 Vonage-APIs, nicht nur auf die Nachrichten-API. Sie können mehr über die unterstützten APIs.
Bevor wir den Ruby-Client in einer vollständigen Rails-Anwendung aktivieren, wollen wir sehen, wie wir ihn allgemeiner in Ruby-Code verwenden können. Um den Client zu verwenden, müssen wir lediglich eine Instanz mit den in unserer Umgebungsdatei gespeicherten Anwendungsinformationen initialisieren.
vonage = Vonage::Client.new(
application_id: ENV["VONAGE_APPLICATION_ID"],
private_key: ENV["VONAGE_PRIVATE_KEY"]
) Wie man eine SMS-Nachricht in Ruby sendet
Jetzt, da unser Client initialisiert ist, wird das Senden einer SMS ganz einfach. Wir rufen die Nachrichtenübermittlung Methode auf, um dem Client mitzuteilen, dass er die Nachrichten-API verwenden soll, und rufen dann send mit den erforderlichen Feldern auf.
# app/controllers/outbound_sms_controller.rb
response = vonage.messaging.send(
"message_type": "text",
"text": "Hello from Vonage!",
"to": "447700900000",
"from": "447700900001",
"channel": "sms"
)
Sie können alle Optionen für verschiedene Kanäle und Felder in der API-Referenz.
SMS-Versand in einer Ruby on Rails-Anwendung
Nachdem wir uns nun damit beschäftigt haben, wie man den Vonage Ruby-Client zum Versenden von SMS verwendet, wollen wir nun eine Ruby on Rails-Funktionalität zum Versenden von SMS in unsere App mit einem einfachen Formular und Controller integrieren. Wir brauchen eine schöne UI, um die an, vonund Text Felder. Sie können das Formular kopieren und in Ihre /app/views/outbound_sms/new.html.erb Ansicht und zugehöriges CSS.
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.
Anmerkung: Nicht jedes Land akzeptiert einen Namen als gültiges "an"-Feld
Nun wollen wir die Logik implementieren, damit unser Formular funktioniert. Zunächst müssen wir eine leere SMS-Instanz erstellen, um das Formular zu laden. Dann rufen wir die create-Methode auf, die die SMS in unserer Datenbank speichert und sie dann über die liefern Methode.
#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)
endDie liefern Methode ist weitgehend identisch mit der im vorigen Abschnitt verwendeten Methode, nur dass sie jetzt die Messages Nachricht Objekt verwendet und die API-Antwort verarbeitet.
Wenn die Nachricht erfolgreich gesendet wurde, wird der Statuscode 202 zusammen mit einer UUID der Nachricht zurückgegeben. Diese UUID hilft bei der Verfolgung des Zustellungsstatus mit Hilfe des Nachrichtenstatuszu verfolgen, den wir im nächsten Beitrag behandeln.
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> Siehe die vollständige outbound_sms_controller.rb Datei.
Starten Sie nun Ihren Rails-Server:
rails s
Und öffnen http://localhost:3000/outbound_sms/new in Ihrem Browser. Sie können nun SMS über Ihre Ruby on Rails-App versenden!
Schlussfolgerung
Sie haben es geschafft! Sie haben gelernt, wie man eine Vonage-Anwendung erstellt, den Vonage Ruby-Client initialisiert und verwendet und erfolgreich SMS aus einer Ruby on Rails-Anwendung versendet. In zukünftigen Beiträgen werden wir dieser Anwendung weitere SMS- und Sprachfunktionen hinzufügen.
Wenn Sie Fragen oder Vorschläge für weitere Ruby-Inhalte haben, schicken Sie uns eine Nachricht auf dem Gemeinschaft Slack. Sie können sich auch über unsere Inhalte und Veranstaltungen für Entwickler auf dem Laufenden halten X, früher bekannt als Twitter.
Teilen Sie:
Benjamin Aronov ist ein Entwickler-Befürworter bei Vonage. Er ist ein bewährter Community Builder mit einem Hintergrund in Ruby on Rails. Benjamin genießt die Strände von Tel Aviv, das er sein Zuhause nennt. Von Tel Aviv aus kann er einige der besten Startup-Gründer der Welt treffen und von ihnen lernen. Außerhalb der Tech-Branche reist Benjamin gerne um die Welt auf der Suche nach dem perfekten Pain au Chocolat.