Zwei-Wege-SMS zur Kundenbindung

Programmierbare SMS sind nicht nur für einseitige Benachrichtigungen nützlich. Wenn Sie ausgehende Benachrichtigungen mit eingehenden Nachrichten kombinieren, schaffen Sie chatähnliche Interaktionen zwischen Ihrem Unternehmen und Ihren Kunden.

In diesem Lernprogramm

Sie sehen, wie schnell Sie eine Zwei-Wege-Kommunikation in Ihre App einbauen können: Sie senden eine Zustellbenachrichtigung an die Telefonnummer Ihres Kunden und bearbeiten seine Antwort, wenn er einen Zustellungszeitpunkt ändern möchte.

Der Arbeitsablauf für Ihre Anwendung ist folgender:

Phone numberVonageAppPhone numberVonageAppRequest acceptedRequest acceptedRequest to SMS APIResponse from SMS APISend delivery notification SMSReply to delivery notificationSend reply to webhook endpointRequest to SMS APIResponse from SMS APISend acknowledgement in SMS

Um dies zu tun:

  1. Konfigurieren Sie eine virtuelle Vonage-Nummer - eine virtuelle Nummer mieten und die Webhook-Endpunkte für eingehende Nachrichten festlegen
  2. Erstellen einer einfachen Webanwendung - Erstellen Sie eine Web-App zur Erfassung der Telefonnummer Ihres Kunden.
  3. Eine SMS-Benachrichtigung senden - Ihrem Kunden eine Zustellungsbenachrichtigung per SMS schicken und eine Antwort anfordern.
  4. Verarbeiten Sie die Antwort-SMS - die SMS-Antwort zu verarbeiten und zu quittieren.

Voraussetzungen

Um dieses Tutorial durcharbeiten zu können, benötigen Sie:

Konfigurieren Sie eine virtuelle Vonage-Nummer

Vonage leitet eingehende Nachrichten an den Webhook-Endpunkt weiter, der mit Ihrer virtuellen Vonage-Nummer verbunden ist.

Sie verwalten virtuelle Numbers über die Entwickler-API oder die Vonage CLI. Die folgenden Beispiele verwenden die Vonage CLI, um eine Vonage-Nummer zu mieten:

vonage numbers search US

✅ Searching for numbers

There is 1 number available for purchase in United States

Number       Type    Features         Monthly Cost  Setup Cost
-----------  ------  ---------------  ------------  ----------
16127779311  Mobile  MMS, SMS, VOICE  €0.900.00

Use vonage numbers buy to purchase.
vonage numbers buy US 16127779311 
✅ Searching for numbers
Are you sure you want to purchase the number 16127779311 for0.90? [y/n] y

✅ Purchasing number
Number 16127779311 purchased

Number: 16127779311 
Country: 🇺🇸 United States
Type: Mobile
Features: MMS, SMS, VOICE
Monthly Cost: €0.90
Setup Cost: €0.00
Linked Application ID: Not linked to any application
Voice Callback: Not Set
Voice Callback Value: Not Set
Voice Status Callback: Not Set

Dann verknüpfen Sie die virtuelle Nummer mit Ihrem Webhook-Endpunkt, der verarbeitet eingehende SMS:

vonage numbers update US 16127779311 `
  --voice-status-callback='https://example.com/voice/status' `
  --voice-callback-value='https://example.com/voice/callback' `
  --voice-callback-type='sip'
  
Searching for number to update [======================================] 1/1 100%

Number updated successfully

Number: 16127779311 
Country: 🇺🇸 United States
Type: Mobile
Features: MMS, SMS, VOICE
Monthly Cost: €0.90
Setup Cost: €0.00
Linked Application ID: Not linked to any application
Voice Callback: sip
Voice Callback Value: https://example.com/voice/callback
Voice Status Callback:https://example.com/voice/status

Hinweis: Stellen Sie sicher, dass Ihr Server läuft und öffentlich verfügbar ist, bevor Sie den Webhook-Endpunkt mit Ihrer virtuellen Nummer. Vonage muss für eine erfolgreiche Konfiguration eine 200 OK-Antwort von Ihrem Webhook-Endpunkt erhalten. Wenn Sie lokal entwickeln, verwenden Sie ein Tool wie ngrok um Ihren lokalen Webserver dem Internet zugänglich zu machen.

Nachdem Sie Ihre virtuelle Nummer konfiguriert haben, können Sie nun SMS-Benachrichtigungen versenden.

Erstellen einer einfachen Webanwendung

Verwenden Sie Sinatra um eine einseitige Webanwendung zu erstellen:

Gemfile

source 'https://rubygems.org'

# our web server
gem 'sinatra'

app.rb

# web server and flash messages
require 'sinatra'

# load environment variables
# from .env file
require 'dotenv'
Dotenv.load

# Index
# - collects a phone number
#
get '/' do
  erb :index
end

Fügen Sie ein HTML-Formular hinzu, um die Telefonnummer zu erfassen, an die Sie eine Benachrichtigungs-SMS senden wollen:

ansichten/index.erb

<form action="/notify" method="post">
  <div class="field">
    <label for="number">
      Phone number
    </label>
    <input type="text" name="number">
  </div>

  <div class="actions">
    <input type="submit" value="Notify">
  </div>
</form>

Das Formular erfasst die Rufnummer in den Feldern E.164 Format, das von der SMS API erwartet wird:

Eine SMS-Benachrichtigung senden

In diesem Lernprogramm fügen Sie zum Senden einer SMS die Vonage Server SDK für Ruby zu Ihrer App:

Gemfile

# the nexmo library
gem 'vonage'
# a way to load environment
# variables
gem 'dotenv'

Verwenden Sie Ihre Vonage-API Schlüssel und Geheimnis um den Client zu initialisieren:

app.rb

# Vonage library
require 'vonage'
vonage = Vonage::Client.new(
  api_key: ENV['VONAGE_API_KEY'],
  api_secret: ENV['VONAGE_API_SECRET']
)

Hinweis: Speichern Sie Ihre API-Anmeldedaten nicht in Ihrem Code, sondern verwenden Sie Umgebungsvariablen.

Um Antworten auf Ihre Benachrichtigungs-SMS zu erhalten, legen Sie Ihre virtuelle Nummer als Absender-ID für ausgehende Nachrichten fest, wenn Sie eine Anfrage stellen an SMS API:

app.rb

# Notify
# - Send the user their delivery
#   notification, asking them
#   to respond back if they
#   want to make any changes
#
post '/notify' do
  notification = "Your delivery is scheduled for tomorrow between " +
                 "8am and 2pm. If you wish to change the delivery date please " +
                 "reply by typing 1 (tomorrow), 2 (Thursday) or 3 (deliver to"
                 "post office) below.<br/><br/>";

  vonage.sms.send(
    from: ENV['VONAGE_NUMBER'],
    to: params['number'],
    text: notification
  )

  "Notification sent to #{params['number']}"
end

Um zu verifizieren, dass der Kunde diese SMS erhalten hat, überprüfen Sie das Feld Lieferschein. In diesem Lernprogramm werden keine Lieferscheine verifiziert.

Verarbeiten Sie die Antwort-SMS

Wenn Ihr Kunde auf Ihre Benachrichtigungs-SMS antwortet, leitet Vonage die SMS weiter. eingehende Nachricht an den mit der virtuellen Nummer verbundenen Webhook-Endpunkt.

In dieser Tutorial-App verarbeiten Sie den eingehenden Webhook, extrahieren den Text und die Nummer und senden eine Bestätigungsnachricht an den Kunden zurück.

app.rb

# Receive incoming message
#
# - Receives incoming SMS
#   message, stores it, and
#   notifies sender
#
get '/update' do
  choice = params['text']
  number = params['msisdn']

  # You can store or validate
  # the choice made here

  message = "Thank you for picking option #{choice}. " +
            "Your delivery is now fully scheduled in."

  vonage.sms.send(
    from: ENV['VONAGE_NUMBER'],
    to: number,
    text: message
  )

  body ''
end

Das Speichern und Validieren von Kundeneingaben geht über den Rahmen dieses Tutorials hinaus.

Beantworten Sie nun die SMS, die Sie zuvor erhalten haben. Sie sollten sehen, dass sie von Ihrer App verarbeitet wird und eine Bestätigung Ihrer Wahl innerhalb von Sekunden.

Schlussfolgerung

So schnell können Sie in Ihrer App SMS senden und empfangen. Mit ein paar Zeilen Code haben Sie eine SMS an das Telefon eines Kunden mit der SMS API an das Telefon eines Kunden geschickt, eine Antwort verarbeitet und mit einer Bestätigung geantwortet.

Holen Sie sich den Code

Der gesamte Code für dieses Lernprogramm ist in der Datei Zwei-Wege-SMS zur Kundenbindung GitHub Repo.

Ressourcen