
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 in Ruby on Rails eine RCS-Vorschlagsantwort erhält
Lesedauer: 3 Minuten
Reichhaltige Kommunikationsdienste (RCS-Antwortvorschläge verbessern die Benutzererfahrung mit interaktiven, freundlichen Antwortschaltflächen. Zuvor haben wir gelernt, wie man RCS-Antwortnachrichten senden und deren Status mit Ruby on Rails. Aber wir müssen auch irgendwie Antworten annehmen, um zu lesen, welche Option unsere Benutzer wählen. In diesem Artikel zeigen wir Ihnen genau, wie Sie das einrichten können.
In diesem Tutorial lernen Sie, wie Sie eine eingehende RCS Suggested Reply-Nachricht durch die Implementierung eines Webhook-Endpunkts in Ruby on Rails empfangen können.
TL;DR Überspringen Sie den Anfang und finden Sie den gesamten Schnellstart-Code auf GitHub.
RCS chat interaction with Vonage RoR bot demonstrating conversational capabilities by asking about ice cream flavor preferences
Voraussetzungen
Sie müssen die Wie man mit Ruby on Rails RCS-Vorschlagsantworten sendet Tutorial abgeschlossen haben, das Folgendes voraussetzt:
Ruby on Rails installiert auf Ihrem Rechner
Ein ngrok Account und auf Ihrem Rechner installiert
Eine virtuelle Nummer von Vonage
Ein registrierter RBM-Agent
Eine Telefonnummer mit RCS-Funktionen für Tests
Wie funktioniert Inbound RCS?
Sie fragen sich vielleicht, wie eine RCS-Antwort vom Telefon eines Benutzers zu Ihrer Rails-Anwendung gelangt. Ähnlich wie bei SMS übernimmt Vonage die Interaktion mit dem Mobilfunknetz. Dann leitet es diese Informationen in einem eingehenden Webhook weiter, den Sie in Ihrer Vonage-Anwendung definieren. In diesem Tutorial werden wir ngrok verwenden, um den eingehenden Webhook in unserer Rails-Anwendung zu verarbeiten.
Diagram illustrating the inbound RCS process, where a user sends a message through the Vonage platform, which then forwards the message to an application via a webhook.
Wie man eine Ruby on Rails-Anwendung mit ngrok freischaltet
Sie können ngrok verwenden, um Ihren lokalen Server sicher über HTTP öffentlich zu machen. So, jetzt in einem separaten Registerkarte Ihres Rails-Servers einen ngrok-Tunnel auf Port 3000.
ngrok http 3000Fügen Sie unbedingt Ihre ngrok-URL als config.host in Ihrer entwicklung.rb Datei hinzufügen. Wir verwenden die dynamische Umgebungsvariable VONAGE_SERVER_HOSTNAMEso dass Sie diese nicht bei jedem Lauf aktualisieren müssen. wie man anfängt und ngrok in Rails benutzt.
# config/environments/development.rb
Rails.application.configure do
config.hosts << ENV['VONAGE_SERVER_HOSTNAME']Wenn Sie noch keine .env-Datei erstellt haben, müssen Sie dies im Stammverzeichnis Ihrer Anwendung tun und Ihre Vonage-Anmeldedaten und die ngrok-URL hinzufügen:
VONAGE_APPLICATION_ID='XXXX'
VONAGE_PRIVATE_KEY='./private.key'
VONAGE_SERVER_HOSTNAME='XXXXXX.ngrok.app>> Halten Sie Ihre Anmeldedaten sicher
>> Übertragen Sie niemals .env-Dateien in Ihr Repository! Stellen Sie sicher, dass .env in Ihrem .gitignore steht.
Für weitere Hilfe, siehe Arbeiten mit Umgebungsvariablen in Ruby.
So verbinden Sie Ihren RCS-Agenten mit Ihrer Vonage-Anwendung
Sobald ngrok läuft, bearbeiten wir unsere Vonage-Anwendung (aus dem vorherigen Artikel) im dem Dashboard um die ngrok-URL in unsere Webhooks einzufügen und sie mit unserem RCS-Agent zu verknüpfen.
Verknüpfen Sie zunächst Ihren RCS-Agenten, indem Sie auf die Schaltfläche "Externe Konten verknüpfen" Registerkarte:
Dashboard view showing the Vonage-Rails-Quickstart application linked to the Vonage RoR RCS external account, with voice and message capabilities enabled.
Aktualisieren Sie nun die eingehende URL unter den Nachrichtenfunktionen. Fügen Sie Ihre ngrok URL gefolgt von /inbound_rcs.
Screenshot of the Messages settings in the Vonage dashboard showing configuration for inbound and status webhook URLs used for RCS communication.
Nach dem Speichern tunnelt ngrok nun Anfragen, die an das Verzeichnis /inbound_rcs Endpunkt gestellten Anfragen an Ihre Rails-Anwendung weiterleiten! Aber es gibt ein kleines Problem: Unsere Rails-Anwendung hat diesen Endpunkt noch nicht.
Wie man einen eingehenden RCS WebHooks in Rails handhabt
Da Vonage nun eine RCS-Nutzlast an /inbound_rcs, lassen Sie uns unsere Anwendung aktualisieren, indem wir eine Route erstellen, die dies verarbeitet.
Rails.application.routes.draw do
post '/inbound_rcs', to: 'inbound_rcs#create', as: :inbound_rcs
....remaining routes...Wenn eine RCS-Antwort an Ihre virtuelle Vonage-Nummer gesendet wurde, benachrichtigt Vonage Ihre Anwendung durch Senden eines Webhooks. Eine typische Nutzlast für eine eingehende RCS-Antwortnachricht JSON sieht etwa so aus:
{
"channel": "rcs",
"message_uuid": "aaaaaaaa-bbbb-4ccc-8ddd-0123456789ab",
"to": "Vonage",
"from": "447700900001",
"timestamp": "2025-02-03T12:14:25Z",
"context_status": "none",
"message_type": "reply",
"reply": {
"id": "reply_option_1",
"title": "9am"
}
} Wie man eine RCS-Antwortnachricht aus Rails speichert
Da wir nun alle erforderlichen Informationen auf der Grundlage unseres zuvor definierten RCS-Modells haben, können wir eine Logik zum Speichern unserer eingehenden RCS-Antworten erstellen. Wir werden auch eine Antwort an unseren Benutzer senden, um ihn wissen zu lassen, dass wir seine Antwort erhalten haben. Lassen Sie uns einen neuen Controller erstellen, der dies erledigt.
rails g controller InboundRcs createInnerhalb unseres Controllers werden wir eine einfache erstellen Methode, die den Webhook analysiert und einen RCS in unsere Datenbank eingibt. Sie werden feststellen, dass wir den Zeitstempel, nachrichten_typ (der sein wird Antwort), und die Antwort JSON-Objekt.
# app/controllers/inbound_rcs_controller.rb
class InboundRcsController < ApplicationController
skip_before_action :verify_authenticity_token
def create
rcs = RcsMessage.create(
message_uuid: params[:message_uuid],
from: params[:from],
to: params[:to],
timestamp: params[:timestamp],
message_type: params[:message_type],
reply: params[:reply]
)
# send reply to user
reply(rcs)
head :ok
end
Um zu beweisen, dass wir die RCS-Antwort erhalten haben, senden wir einen Bestätigungstext an den Absender zurück.
def reply(rcs)
selection = rcs.reply["title"]
message = vonage.messaging.rcs(
type: "text",
message: "#{selection} is a great choice!"
)
vonage.messaging.send(
from: ENV["RCS_SENDER_ID"],
to: rcs.from,
**message
)
endDie Antwortmethode stützt sich auf den Vonage-Client, daher müssen wir ihn wie im vorherigen Artikel initialisieren vorherigen Artikel.
def vonage
Vonage::Client.new(
application_id: ENV["VONAGE_APPLICATION_ID"],
private_key: ENV["VONAGE_PRIVATE_KEY"]
)
endWie der gesamte Code zusammenpasst, können Sie in der vollständigen inbound_rcs_controller.rb Datei.
Schlussfolgerung
Herzlichen Glückwunsch! Sie haben erfolgreich eine Ruby on Rails RCS-Anwendung erstellt, die eingehende RCS-Antwortnachrichten über einen Vonage Webhook empfangen kann. Damit haben Sie den Teil "RCS Suggest Replies" des Ruby on Rails Quickstarts abgeschlossen. Wir werden in zukünftigen Tutorials weitere RCS-Funktionen und dann WhatsApp-Funktionen hinzufügen.
Wenn Sie Fragen haben oder eine Funktion für die Quickstart-Anwendung beantragen möchten, beteiligen Sie sich an der Diskussion in der Vonage Gemeinschaft Slack oder kontaktieren Sie uns auf X (früher Twitter). Wir würden uns freuen zu hören, was Sie als nächstes bauen!
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.