RBM-Agents kommunizieren mit Nutzern, indem sie Nachrichten senden und empfangen. Um Nachrichten an Nutzer zu senden, sendet Ihr Kundenservicemitarbeiter Nachrichtenanfragen an die RCS Business Messaging API. Eine einzelne Anfrage kann Text, eine Rich-Card, ein Bild oder ein Video sowie vorgeschlagene Antworten und Aktionen enthalten.
Wenn Sie eine Nachricht an einen Nutzer senden, dessen Gerät RCS nicht unterstützt oder RCS nicht aktiviert hat, gibt die RBM-Plattform einen 404-Fehler zurück. In diesem Fall können Sie versuchen, den Nutzer über die in Ihrer Infrastruktur definierten Fallback-Methoden zu erreichen.
Wenn Sie eine Nachricht an einen RCS-Nutzer in einem Netzwerk senden, in dem Ihr Agent noch nicht eingeführt wurde, oder in einem Netzwerk, in dem RCS-Traffic nicht aktiviert ist, gibt die RBM-Plattform einen 403-Fehler zurück.
Wenn Sie eine Nachricht mit Funktionen senden, die auf dem Gerät eines Nutzers nicht unterstützt werden, gibt die RBM-Plattform einen Fehler zurück und Ihre Nachricht wird nicht zugestellt.
Im Rahmen Ihrer Multi-Channel-Messaging-Strategie sollten Sie Nachrichten widerrufen, die nach angemessener Zeit nicht zugestellt wurden, und sie über einen anderen Kanal senden. Wenn Sie Nachrichten automatisch zu einer vordefinierten Zeit widerrufen möchten, legen Sie einen Ablaufzeitpunkt für Nachrichten fest.
Empfänger ist offline
Die RBM-Plattform akzeptiert eine Nachricht auch dann zur Zustellung, wenn der Empfänger offline ist. Sie erhalten die Antwort „200 OK“. Die RBM-Plattform behält die Nachricht 30 Tage lang und versucht, sie noch einmal zuzustellen. Sie müssen RBM nicht bitten, die Nachricht noch einmal zu senden.
RBM löscht alle nicht zugestellten Nachrichten 30 Tage nach dem Senden.
Je nach Anwendungsfall des Kundenservicemitarbeiters kann es sinnvoll sein, eine nicht zugestellte Nachricht vor Ablauf dieser 30-tägigen Zeitüberschreitung zu widerrufen. So können Sie verhindern, dass offline Nutzer eine veraltete Nachricht erhalten, wenn sie wieder online sind. Es gibt mehrere Möglichkeiten, eine Nachricht zu widerrufen:
- Senden Sie einen Widerrufsantrag, um den Widerruf auszulösen.
- Legen Sie ein Ablaufdatum für die Nachricht fest, damit sie zum entsprechenden Zeitpunkt automatisch widerrufen wird.
Ablaufdatum für Nachrichten festlegen
Ist die Nachricht des Kundenservicemitarbeiters zeitkritisch? OTPs sind beispielsweise nur für einen kurzen Zeitraum gültig. Zeitlich begrenzte Angebote laufen ab. Erinnerungen an Termine sind nach dem Termindatum nicht mehr relevant. Legen Sie ein Ablaufdatum für Nachrichten fest, damit sie immer aktuell und relevant sind. So können Nutzer, die offline sind, nicht veraltete Inhalte erhalten, wenn sie wieder online sind. Das Ablaufdatum ist auch ein guter Zeitpunkt, um Ihre Fallback-Nachrichtenstrategie zu aktivieren, damit Nutzer die benötigten Informationen rechtzeitig erhalten.
Wenn Sie ein Ablaufdatum für eine Nachricht festlegen möchten, geben Sie in der Kundenservicemitteilung eines der folgenden Felder an:
expireTime
: die genaue Uhrzeit in UTC, zu der die Nachricht abläuft.ttl
(Time to Live): die Zeitspanne, nach der die Nachricht abläuft.
Informationen zu Formatierungs- und Wertoptionen finden Sie unter AgentMessage
.
Nach Ablauf der Gültigkeitsdauer der Nachricht versucht die RBM-Plattform nicht mehr, die Nachricht zu senden. Sie wird automatisch widerrufen. In seltenen Fällen kann dies jedoch fehlschlagen. So kann die API beispielsweise den Widerruf auslösen, während die RBM-Plattform die Nachricht gerade zustellt. Um zu bestätigen, ob die abgelaufene Nachricht widerrufen wurde, sendet RBM ein Benachrichtigungsereignis an Ihren Webhook.
Der Maximalwert für ttl
und expireTime
ist 15 Tage nach dem Senden der Nachricht.
Maximale Nachrichtengröße
Die maximale Größe der gesamten stringifizierten AgentMessage beträgt 250 KB. Rich-Cards und andere Medien tragen zu diesem Größenlimit bei. Der Textteil der Nachricht ist auf 3.072 Zeichen begrenzt.
Die maximale Größe einer Datei, die über RBM gesendet werden kann, beträgt 100 MB. An eine einzelne RBM-Nachricht kann nur eine PDF- oder Mediendatei angehängt werden. Weitere Informationen finden Sie unter Medien- und PDF-Dateien.
Text
Die einfachsten Nachrichten bestehen aus Text. SMS eignen sich am besten, um Informationen zu vermitteln, ohne dass visuelle Elemente, komplexe Interaktionen oder Antworten erforderlich sind.
Beispiel
Mit dem folgenden Code wird eine reine Textnachricht gesendet. Informationen zu Formatierungs- und Wertoptionen finden Sie unter phones.agentMessages.create
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'contentMessage': { 'text': 'Hello, world!' } }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); let params = { messageText: 'Hello, world!', msisdn: '+12223334444', }; // Send a simple message to the device rbmApiHelper.sendMessage(params, function(response) { console.log(response); });
Java
import com.google.rbm.RbmApiHelper; … try { // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Send simple text message to user rbmApiHelper.sendTextMessage( "Hello, world!", "+12223334444" ); } catch(Exception e) { e.printStackTrace(); }
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service from rcs_business_messaging import messages # Create a simple RBM text message message_text = messages.TextMessage('Hello, world!') # Send text message to the device messages.MessageCluster().append_message(message_text).send_to_msisdn('+12223334444')
C#
using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); rbmApiHelper.SendTextMessage( "Hello, world!", "+12223334444", );
Inhalt einfacher Nachrichten – Umwandlung von SMS
Mobilfunkanbieter haben Abrechnungsmodelle eingeführt, um die Umstellung von SMS auf RBM zu unterstützen. Eine RBM-Nachricht mit bis zu 160 UTF-8-Zeichen wird als Basisnachricht bezeichnet.
Beachte beim Erstellen einer Anfrage zum Senden einer einfachen Nachricht, dass Zeichen als 1 Byte (UTF-8) gezählt werden. Wenn Sie eine Nachricht mit Sonderzeichen wie Emojis oder einem mehrsprachigen Zeichensatz senden, wird jedes Zeichen als zwei UTF-8-Zeichen gezählt.
Geben Sie Text in das Feld ein, um die Länge zu prüfen:
Einmalpasswörter für die Nutzerbestätigung
Mit RBM können Sie Einmalpasswörter (OTPs) für die automatische Nutzerbestätigung mit der SMS Retriever API senden. Weitere Informationen zum SMS Retriever und zu den zugehörigen APIs finden Sie in der Dokumentation zum SMS Retriever. Weitere Informationen zur automatischen Nutzerbestätigung in Apps, die bei der SMS Retriever API registriert sind, finden Sie in diesem Flussdiagramm.
Während des Bestätigungsprozesses wartet die SMS Retriever API auf eine RBM-Nachricht. Diese Nachricht muss ein OTP und einen Hash enthalten, der die App identifiziert. Nachdem der Hash mit der App abgeglichen wurde, wird das OTP extrahiert und zur automatischen Nutzerbestätigung an die App weitergeleitet.
Hier ist eine Beispiel-SMS von RBM zur Nutzerbestätigung: Ihr Code lautet <OTP> <app hash>.
Beispiel: Your code is 123456 M8tue43FGT.
Medien- und PDF-Dateien
Wenn Sie eine Nachricht mit einem Bild, Video, einer Audiodatei oder einer PDF-Datei senden, muss Ihr Kundenservicemitarbeiter eine öffentlich zugängliche URL für den Inhalt angeben oder die Datei direkt hochladen. Für Mediendateien können Sie auch ein Thumbnail-Bild angeben, mit dem Nutzer sich eine Vorschau der Inhalte ansehen können, bevor sie darauf klicken. Für Audiodateien wird das Standard-Audio-Widget als Platzhalter verwendet.
Die RBM-Plattform speichert Dateien 60 Tage lang im Cache und die API gibt eine Datei-ID zurück, die Ihr Kundenservicemitarbeiter in Nachrichten an Nutzer einfügen kann. Nach 60 Tagen entfernt RBM Dateien aus dem Cache.
Wenn Sie Dateien per URL angeben, sollten Sie contentMessage.forceRefresh
auf false
festlegen. Wenn Sie contentMessage.forceRefresh
auf true
festlegen, wird RBM gezwungen, neue Inhalte von der angegebenen URL abzurufen, auch wenn die URL-Inhalte im Cache gespeichert sind. Dies verlängert die Nachrichtenübermittlungszeiten für Nutzer.
In den Best Practices finden Sie Empfehlungen und Limits für die Dateigröße.
Beispiel für eine Datei-URL
Im folgenden Code wird ein Bild gesendet. Informationen zu Formatierungs- und Wertoptionen finden Sie unter AgentContentMessage
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'contentMessage': { 'contentInfo': { 'fileUrl': 'http://www.google.com/logos/doodles/2015/googles-new-logo-5078286822539264.3-hp2x.gif', 'forceRefresh': 'false' } } }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); let params = { fileUrl: 'http://www.google.com/logos/doodles/2015/googles-new-logo-5078286822539264.3-hp2x.gif', msisdn: '+12223334444', }; // Send an image/video to a device rbmApiHelper.sendMessage(params, function(response) { console.log(response); });
Java
import com.google.api.services.rcsbusinessmessaging.v1.model.AgentContentMessage; import com.google.api.services.rcsbusinessmessaging.v1.model.AgentMessage; import com.google.rbm.RbmApiHelper; … try { // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); String fileUrl = "http://www.google.com/logos/doodles/2015/googles-new-logo-5078286822539264.3-hp2x.gif"; // create media only message AgentContentMessage agentContentMessage = new AgentContentMessage(); agentContentMessage.setContentInfo(new ContentInfo().setFileUrl(fileUrl)); // attach content to message AgentMessage agentMessage = new AgentMessage(); agentMessage.setContentMessage(agentContentMessage); rbmApiHelper.sendAgentMessage(agentMessage, "+12223334444"); } catch(Exception e) { e.printStackTrace(); }
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service from rcs_business_messaging import messages # Create media file attachment file_message = messages.FileMessage('http://www.google.com/logos/doodles/2015/googles-new-logo-5078286822539264.3-hp2x.gif') messages.MessageCluster().append_message(file_message).send_to_msisdn('+12223334444')
C#
using Google.Apis.RCSBusinessMessaging.v1.Data; using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); string fileUrl = "http://www.google.com/logos/doodles/2015/googles-new-logo-5078286822539264.3-hp2x.gif"; // Create content info with the file url ContentInfo contentInfo = new ContentInfo { FileUrl = fileUrl }; // Attach content info to a message AgentContentMessage agentContentMessage = new AgentContentMessage { ContentInfo = contentInfo, }; // Attach content to message AgentMessage agentMessage = new AgentMessage { ContentMessage = agentContentMessage }; rbmApiHelper.SendAgentMessage(agentMessage, "+12223334444");
Alternativ können Sie Medien mit files.create
hochladen, bevor Sie sie in einer Nachricht senden.
Beispiel für einen Dateiupload
Mit dem folgenden Code werden eine Videodatei und eine Miniaturansichtendatei hochgeladen und dann beide Dateien in einer Nachricht gesendet. Informationen zu Formatierungs- und Wertoptionen finden Sie unter files.create
und AgentContentMessage
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/upload/v1/files?agentId=AGENT_ID" \ -H "Content-Type: video/mp4" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ --upload-file "FULL_PATH_TO_VIDEO_MEDIA_FILE"
# Capture server-specified video file name from response body JSON
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/upload/v1/files?agentId=AGENT_ID" \ -H "Content-Type: image/jpeg" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ --upload-file "FULL_PATH_TO_THUMBNAIL_MEDIA_FILE"
# Capture server-specified image file name from response body JSON
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'contentMessage': { 'uploadedRbmFile': { 'fileName': 'SERVER-SPECIFIED_VIDEO_FILE_NAME' 'thumbnailName': 'SERVER-SPECIFIED_THUMBNAIL_FILE_NAME' } } }"
Unterstützte Medientypen
RBM unterstützt die folgenden Medientypen:
Medientyp | Dokumenttyp | Erweiterung | Funktioniert mit Rich Cards |
---|---|---|---|
application/ogg | OGG-Audio | .ogx | Nein |
application/pdf | Nein | ||
audio/aac | AAC-Audio | .aac | Nein |
audio/mp3 | MP3-Audio | .mp3 | Nein |
audio/mpeg | MPEG-Audio | .mpeg | Nein |
audio/mpg | MPG-Audio | .mp3 | Nein |
audio/mp4 | MP4-Audio | .mp4 | Nein |
audio/mp4-latm | MP4-latm-Audio | .mp4 | Nein |
audio/3gpp | 3GPP-Audio | 3GP | Nein |
image/jpeg | JPEG | JPEG, JPG | Ja |
image/gif | GIF | GIF | Ja |
image/png | PNG | PNG | Ja |
video/h263 | H263-Video | .h263 | Ja |
video/m4v | M4V-Video | .m4v | Ja |
video/mp4 | MP4-Video | .mp4 | Ja |
video/mpeg4 | MPEG-4-Video | .mp4, .m4p | Ja |
video/mpeg | MPEG-Video | .mpeg | Ja |
video/webm | WEBM-Video | WEBM | Ja |
Vorgeschlagene Antworten
Vorgeschlagene Antworten leiten Nutzer durch Unterhaltungen, indem sie Antworten liefern, auf die Ihr Kundenservicemitarbeiter reagieren kann. Der Kundenservicemitarbeiter sendet vorgeschlagene Antworten in Listen mit Vorschlags-Chips oder in Rich Cards.
Wenn ein Nutzer auf eine vorgeschlagene Antwort tippt, erhält Ihr Kundenservicemitarbeiter ein Ereignis mit dem Text der Antwort und Postback-Daten.
Vorgeschlagene Antworten dürfen maximal 25 Zeichen lang sein.
Beispiel
Im folgenden Code wird Text mit zwei vorgeschlagenen Antworten gesendet. Informationen zu Formatierungs- und Wertoptionen finden Sie unter SuggestedReply
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'contentMessage': { 'text': 'Hello, world!', 'suggestions': [ { 'reply': { 'text': 'Suggestion #1', 'postbackData': 'suggestion_1' } }, { 'reply': { 'text': 'Suggestion #2', 'postbackData': 'suggestion_2' } } ] } }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); let suggestions = [ { reply: { 'text': 'Suggestion #1', 'postbackData': 'suggestion_1', }, }, { reply: { 'text': 'Suggestion #2', 'postbackData': 'suggestion_2', }, }, ]; let params = { messageText: 'Hello, world!', msisdn: '+12223334444', suggestions: suggestions, }; // Send a simple message with suggestion chips to the device rbmApiHelper.sendMessage(params, function(response) { console.log(response); });
Java
import com.google.api.services.rcsbusinessmessaging.v1.model.Suggestion; import com.google.rbm.RbmApiHelper; import com.google.rbm.SuggestionHelper; … try { // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Create suggestions for chip list List<Suggestion> suggestions = new ArrayList<Suggestion>(); suggestions.add( new SuggestionHelper("Suggestion #1", "suggestion_1").getSuggestedReply()); suggestions.add( new SuggestionHelper("Suggestion #2", "suggestion_2").getSuggestedReply()); // Send simple text message to user rbmApiHelper.sendTextMessage( "Hello, world!", "+12223334444", suggestions ); } catch(Exception e) { e.printStackTrace(); }
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service from rcs_business_messaging import messages # Create text message to send to user text_msg = messages.TextMessage('Hello, world!') cluster = messages.MessageCluster().append_message(text_msg) # Append suggested replies for the message to send to the user cluster.append_suggestion_chip(messages.SuggestedReply('Suggestion #1', 'reply:suggestion_1')) cluster.append_suggestion_chip(messages.SuggestedReply('Suggestion #2', 'reply:suggestion_2')) # Send a simple message with suggestion chips to the device cluster.send_to_msisdn('+12223334444')
C#
using Google.Apis.RCSBusinessMessaging.v1.Data; using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); List<Suggestion> suggestions = new List<Suggestion> { // Create suggestion chips new SuggestionHelper("Suggestion #1", "suggestion_1").SuggestedReply(), new SuggestionHelper("Suggestion #2", "suggestion_2").SuggestedReply() }; // Send simple text message with suggestions to user rbmApiHelper.SendTextMessage( "Hello, world!", "+12223334444", suggestions );
Vorgeschlagene Aktionen
Vorgeschlagene Aktionen leiten Nutzer durch Unterhaltungen, indem sie die integrierten Funktionen ihrer Geräte nutzen. Der Kundenservicemitarbeiter kann Nutzern vorschlagen, eine Nummer zu wählen, einen Ort auf einer Karte zu öffnen, einen Ort zu teilen, eine URL zu öffnen oder einen Kalendertermin zu erstellen. Der Kundenservicemitarbeiter sendet Vorschläge in Listen mit Vorschlags-Chips oder in Rich-Cards.
Wenn ein Nutzer auf eine vorgeschlagene Aktion tippt, erhält Ihr Kundenservicemitarbeiter ein Ereignis mit den Postback-Daten der Aktion.
Vorgeschlagene Aktionen dürfen maximal 25 Zeichen lang sein.
Informationen zu Formatierungs- und Wertoptionen finden Sie unter SuggestedAction
.
Nummer wählen
Mit der Aktion „Anrufen“ wird der Nutzer aufgefordert, eine von Ihrem Kundenservicemitarbeiter angegebene Telefonnummer zu wählen.
Telefonnummern dürfen nur Ziffern (0-9
), Pluszeichen (+
), Sternchen (*
) und das Ziffernzeichen (#
) enthalten. Das internationale E.164-Format (z. B. +14155555555
) wird unterstützt, ist aber nicht erforderlich. Das heißt, sowohl +14155555555
als auch 1011
sind gültige Einträge.
Beispiel
Im folgenden Code wird eine Anrufaktion gesendet. Informationen zu Formatierungs- und Wertoptionen finden Sie unter DialAction
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'contentMessage': { 'text': 'Hello, world!', 'suggestions': [ { 'action': { 'text': 'Call', 'postbackData': 'postback_data_1234', 'fallbackUrl': 'https://www.google.com/contact/', 'dialAction': { 'phoneNumber': '+15556667777' } } } ] } }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); // Define a dial suggested action let suggestions = [ { action: { text: 'Call', postbackData: 'postback_data_1234', dialAction: { phoneNumber: '+15556667777' } } }, ]; let params = { messageText: 'Hello, world!', msisdn: '+12223334444', suggestions: suggestions, }; // Send a simple message with a dial suggested action rbmApiHelper.sendMessage(params, function(response) { console.log(response); });
Java
import com.google.api.services.rcsbusinessmessaging.v1.model.DialAction; import com.google.api.services.rcsbusinessmessaging.v1.model.SuggestedAction; import com.google.api.services.rcsbusinessmessaging.v1.model.Suggestion; import com.google.rbm.RbmApiHelper; … try { // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Create suggestions for chip list List<Suggestion> suggestions = new ArrayList<Suggestion>(); // creating a dial suggested action DialAction dialAction = new DialAction(); dialAction.setPhoneNumber("+15556667777"); // creating a suggested action based on a dial action SuggestedAction suggestedAction = new SuggestedAction(); suggestedAction.setText("Call"); suggestedAction.setPostbackData("postback_data_1234"); suggestedAction.setDialAction(dialAction); // attaching action to a suggestion Suggestion suggestion = new Suggestion(); suggestion.setAction(suggestedAction); suggestions.add(suggestion); // Send simple text message with the suggestion action rbmApiHelper.sendTextMessage( "Hello, world!", "+12223334444", suggestions ); } catch(Exception e) { e.printStackTrace(); }
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service from rcs_business_messaging import messages # Create a dial suggested action suggestions = [ messages.DialAction('Call', 'reply:postback_data_1234', '+15556667777') ] # Create text message to send to user text_msg = messages.TextMessage('Hello, world!') cluster = messages.MessageCluster().append_message(text_msg) # Append suggestions for the message to send to the user for suggestion in suggestions: cluster.append_suggestion_chip(suggestion) # Send a simple message with suggested action to the device cluster.send_to_msisdn('+12223334444')
C#
using Google.Apis.RCSBusinessMessaging.v1.Data; using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); // Create a dial an agent suggested action DialAction dialAction = new DialAction { PhoneNumber = "+15556667777" }; // Creating a suggested action based on a dial action SuggestedAction suggestedAction = new SuggestedAction { Text = "Call", PostbackData = "postback_data_1234", DialAction = dialAction }; // Attach action to a suggestion Suggestion suggestion = new Suggestion { Action = suggestedAction }; List<Suggestion> suggestions = new List<Suggestion> { suggestion }; rbmApiHelper.SendTextMessage( "Hello, world!", "+12223334444", suggestions );
Standort ansehen
Mit der Aktion „Standort ansehen“ wird ein Standort in der Standardkarten-App des Nutzers angezeigt. Sie können den Standort entweder anhand von Breiten- und Längengrad oder mit einer Abfrage angeben, die auf dem aktuellen Standort des Nutzers basiert. Sie können auch ein benutzerdefiniertes Label für die Markierung festlegen, das in der Karten-App angezeigt wird.
Beispiel
Im folgenden Code wird eine Aktion zum Aufrufen des Standorts gesendet. Informationen zu Formatierungs- und Wertoptionen finden Sie unter ViewLocationAction
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'contentMessage': { 'text': 'Hello, world!', 'suggestions': [ { 'action': { 'text': 'View map', 'postbackData': 'postback_data_1234', 'fallbackUrl': 'https://www.google.com/maps/@37.4220188,-122.0844786,15z', 'viewLocationAction': { 'latLong': { 'latitude': "37.4220188', 'longitude': "-122.0844786' }, 'label': 'Googleplex' } } } ] } }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); // Define a view location suggested action let suggestions = [ { action: { text: 'View map', postbackData: 'postback_data_1234', viewLocationAction: { latLong: { latitude: 37.4220188, longitude: -122.0844786 }, label: 'Googleplex' } } }, ]; let params = { messageText: 'Hello, world!', msisdn: '+12223334444', suggestions: suggestions, }; // Send a simple message with a view location suggested action rbmApiHelper.sendMessage(params, function(response) { console.log(response); });
Java
import com.google.api.services.rcsbusinessmessaging.v1.model.ViewLocationAction; import com.google.api.services.rcsbusinessmessaging.v1.model.SuggestedAction; import com.google.api.services.rcsbusinessmessaging.v1.model.Suggestion; import com.google.rbm.RbmApiHelper; … try { // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Create suggestions for chip list List<Suggestion> suggestions = new ArrayList<Suggestion>(); // creating a view location suggested action ViewLocationAction viewLocationAction = new ViewLocationAction(); viewLocationAction.setQuery("Googleplex, Mountain View, CA"); // creating a suggested action based on a view location action SuggestedAction suggestedAction = new SuggestedAction(); suggestedAction.setText("View map"); suggestedAction.setPostbackData("postback_data_1234"); suggestedAction.setViewLocationAction(viewLocationAction); // attaching action to a suggestion Suggestion suggestion = new Suggestion(); suggestion.setAction(suggestedAction); suggestions.add(suggestion); // Send simple text message with the suggestion action rbmApiHelper.sendTextMessage( "Hello, world!", "+12223334444", suggestions ); } catch(Exception e) { e.printStackTrace(); }
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service from rcs_business_messaging import messages # Create a view location suggested action suggestions = [ messages.ViewLocationAction('View map', 'reply:postback_data_1234', query='Googleplex, Mountain View, CA') ] # Create text message to send to user text_msg = messages.TextMessage('Hello, world!') cluster = messages.MessageCluster().append_message(text_msg) # Append suggestions for the message to send to the user for suggestion in suggestions: cluster.append_suggestion_chip(suggestion) # Send a simple message with suggested action to the device cluster.send_to_msisdn('+12223334444')
C#
using Google.Apis.RCSBusinessMessaging.v1.Data; using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); // create an view location action ViewLocationAction viewLocationAction = new ViewLocationAction { Query = "Googleplex Mountain View, CA" }; // Attach the view location action to a suggested action SuggestedAction suggestedAction = new SuggestedAction { ViewLocationAction = viewLocationAction, Text = "View map", PostbackData = "postback_data_1234" }; // Attach the action to a suggestion object Suggestion suggestion = new Suggestion { Action = suggestedAction }; List<Suggestion> suggestions = new List<Suggestion> { suggestion }; rbmApiHelper.SendTextMessage( "Hello, world!", "+12223334444", suggestions );
Standort teilen
Mit der Aktion „Standort teilen“ kann der Nutzer deinen Kundenservicemitarbeitern seinen Standort senden. Der vom Nutzer angegebene Standort ist nicht unbedingt sein tatsächlicher Standort.
Beispiel
Im folgenden Code wird eine Standortfreigabeaktion gesendet. Informationen zu Formatierungs- und Wertoptionen finden Sie unter ShareLocationAction
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'contentMessage': { 'text': 'Hello, world!', 'suggestions': [ { 'action': { 'text': 'Share your location', 'postbackData': 'postback_data_1234', 'shareLocationAction': {} } } ] } }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); // Define a share location suggested action let suggestions = [ { action: { text: 'Share your location', postbackData: 'postback_data_1234', shareLocationAction: { } } }, ]; let params = { messageText: 'Hello, world!', msisdn: '+12223334444', suggestions: suggestions, }; // Send a simple message with a share location suggested action rbmApiHelper.sendMessage(params, function(response) { console.log(response); });
Java
import com.google.api.services.rcsbusinessmessaging.v1.model.ShareLocationAction; import com.google.api.services.rcsbusinessmessaging.v1.model.SuggestedAction; import com.google.api.services.rcsbusinessmessaging.v1.model.Suggestion; import com.google.rbm.RbmApiHelper; … try { // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Create suggestions for chip list List<Suggestion> suggestions = new ArrayList<Suggestion>(); // creating a share location suggested action ShareLocationAction shareLocationAction = new ShareLocationAction(); // creating a suggested action based on a share location action SuggestedAction suggestedAction = new SuggestedAction(); suggestedAction.setText("Share location"); suggestedAction.setPostbackData("postback_data_1234"); suggestedAction.setShareLocationAction(shareLocationAction); // attaching action to a suggestion Suggestion suggestion = new Suggestion(); suggestion.setAction(suggestedAction); suggestions.add(suggestion); // Send simple text message with the suggestion action rbmApiHelper.sendTextMessage( "Hello, world!", "+12223334444", suggestions ); } catch(Exception e) { e.printStackTrace(); }
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service from rcs_business_messaging import messages # Create a share location suggested action suggestions = [ messages.ShareLocationAction('Share location', 'reply:postback_data_1234') ] # Create text message to send to user text_msg = messages.TextMessage('Hello, world!') cluster = messages.MessageCluster().append_message(text_msg) # Append suggestions for the message to send to the user for suggestion in suggestions: cluster.append_suggestion_chip(suggestion) # Send a simple message with suggested action to the device cluster.send_to_msisdn('+12223334444')
C#
using Google.Apis.RCSBusinessMessaging.v1.Data; using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); // Create a share location action ShareLocationAction shareLocationAction = new ShareLocationAction(); // Attach the share location action to a suggested action SuggestedAction suggestedAction = new SuggestedAction { ShareLocationAction = shareLocationAction, Text = "Share location", PostbackData = "postback_data_1234" }; // Attach the action to a suggestion object Suggestion suggestion = new Suggestion { Action = suggestedAction }; List<Suggestion> suggestions = new List<Suggestion> { suggestion }; rbmApiHelper.SendTextMessage( "Hello, world!", "+12223334444", suggestions );
URL öffnen
Mit der Aktion „URL öffnen“ können Sie Nutzer zu einer von Ihrem Kundenservicemitarbeiter angegebenen Webseite weiterleiten. Standardmäßig wird die Webseite im Browser des Nutzers geöffnet. Wenn ein Nutzer eine Standard-App für die Webseite konfiguriert hat, wird stattdessen diese App geöffnet. In diesem Fall ist das Symbol auf der vorgeschlagenen Aktionsschaltfläche das Symbol der App.
Die Aktion „URL öffnen“ unterstützt auch integrierte Webviews. Weitere Informationen finden Sie unter URL mit Webview öffnen.
Beispiel
Im folgenden Code wird eine Aktion zum Öffnen einer URL gesendet. Informationen zu Formatierungs- und Wertoptionen finden Sie unter OpenUrlAction
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'contentMessage': { 'text': 'Hello, world!', 'suggestions': [ { 'action': { 'text': 'Open Google', 'postbackData': 'postback_data_1234', 'openUrlAction': { 'url': 'https://www.google.com' } } } ] } }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); // Define an open URL suggested action let suggestions = [ { action: { text: 'Open Google', postbackData: 'postback_data_1234', openUrlAction: { url: 'https://www.google.com' } } }, ]; let params = { messageText: 'Hello, world!', msisdn: '+12223334444', suggestions: suggestions, }; // Send a simple message with an open URL suggested action rbmApiHelper.sendMessage(params, function(response) { console.log(response); });
Java
import com.google.api.services.rcsbusinessmessaging.v1.model.OpenUrlAction; import com.google.api.services.rcsbusinessmessaging.v1.model.SuggestedAction; import com.google.api.services.rcsbusinessmessaging.v1.model.Suggestion; import com.google.rbm.RbmApiHelper; … try { // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Create suggestions for chip list List<Suggestion> suggestions = new ArrayList<Suggestion>(); // creating an open url suggested action OpenUrlAction openUrlAction = new OpenUrlAction(); openUrlAction.setUrl("https://www.google.com"); // creating a suggested action based on an open url action SuggestedAction suggestedAction = new SuggestedAction(); suggestedAction.setText("Open Google"); suggestedAction.setPostbackData("postback_data_1234"); suggestedAction.setOpenUrlAction(openUrlAction); // attaching action to a suggestion Suggestion suggestion = new Suggestion(); suggestion.setAction(suggestedAction); suggestions.add(suggestion); // Send simple text message with the suggestion action rbmApiHelper.sendTextMessage( "Hello, world!", "+12223334444", suggestions ); } catch(Exception e) { e.printStackTrace(); }
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service from rcs_business_messaging import messages # Create an open url suggested action suggestions = [ messages.OpenUrlAction('Open Google', 'reply:postback_data_1234', 'https://www.google.com') ] # Create text message to send to user text_msg = messages.TextMessage('Hello, world!') cluster = messages.MessageCluster().append_message(text_msg) # Append suggestions for the message to send to the user for suggestion in suggestions: cluster.append_suggestion_chip(suggestion) # Send a simple message with suggested action to the device cluster.send_to_msisdn('+12223334444')
C#
using Google.Apis.RCSBusinessMessaging.v1.Data; using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); // Create an open url action OpenUrlAction openUrlAction = new OpenUrlAction { Url = "https://www.google.com" }; // Attach the open url action to a suggested action SuggestedAction suggestedAction = new SuggestedAction { OpenUrlAction = openUrlAction, Text = "Open Google", PostbackData = "postback_data_1234" }; // Attach the action to a suggestion object Suggestion suggestion = new Suggestion { Action = suggestedAction }; List<Suggestion> suggestions = new List<Suggestion> { suggestion }; rbmApiHelper.SendTextMessage( "Hello, world!", "+12223334444", suggestions );
URL mit WebView öffnen
Mit der Aktion „URL mit Webview öffnen“ wird die angegebene Webseite in der Messaging-App mit dem Rendering-Engine Ihres Standardbrowsers geladen. So kann der Nutzer mit der Webseite interagieren, ohne die RBM-Unterhaltung zu verlassen. Informationen zum Aktivieren von WebViews finden Sie unter OpenURLApplication
.
Webviews haben drei Anzeigemodi. Informationen zu Formatierungs- und Wertoptionen finden Sie unter WebviewViewMode
.
- Voll:Die Webseite nimmt den gesamten Bildschirm ein.
- Halb:Die Webseite nimmt die Hälfte des Bildschirms ein.
- Hoch:Die Webseite nimmt drei Viertel des Bildschirms ein.
Beispiel
Der folgende Code sendet eine „URL öffnen“-Aktion mit Webview. Informationen zu Formatierungs- und Wertoptionen finden Sie unter OpenURLAction
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d '{ "contentMessage": { "text": "Hello, world!", "suggestions": [ { "action": { "text": "Open Google", "postbackData": "postback_data_1234", "openUrlAction": { "url": "https://www.google.com", "application": "WEBVIEW", "webviewViewMode": "FULL", "description": "Accessibility description" } } } ] } }'
Java
import com.google.api.services.rcsbusinessmessaging.v1.model.OpenUrlAction; import com.google.api.services.rcsbusinessmessaging.v1.model.SuggestedAction; import com.google.api.services.rcsbusinessmessaging.v1.model.Suggestion; import com.google.rbm.RbmApiHelper; … try { String URL = "https://www.google.com"; // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Create suggestions for chip list List<Suggestion> suggestions = new ArrayList<Suggestion>(); // Create suggestion to view webpage in full mode Suggestion viewInFullMode = getUrlActionInWebview(URL, "FULL") suggestions.add(viewInFullMode); // create suggestion to view webpage in half mode Suggestion viewInHalfMode = getUrlActionInWebview(URL, "HALF") suggestions.add(viewInHalfMode); // create suggestion to view webpage in tall mode Suggestion viewInTallMode = getUrlActionInWebview(URL, "TALL") suggestions.add(viewInTallMode); // Send simple text message with the suggested action rbmApiHelper.sendTextMessage( "Hello, world!", "+12223334444", suggestions ); } catch(Exception e) { e.printStackTrace(); } /** * Creates a suggested action to open URL in webview. * * @return a suggestion object for an open URL in webview action . */ private Suggestion getUrlActionInWebview(String url, String viewMode) { // create an open url action OpenUrlAction openUrlAction = new OpenUrlAction(); openUrlAction.setUrl(url); openUrlAction.setApplication("WEBVIEW"); openUrlAction.setWebviewViewMode(viewMode); openUrlAction.setDescription("Accessibility description"); // attach the open url action to a suggested action SuggestedAction suggestedAction = new SuggestedAction(); suggestedAction.setOpenUrlAction(openUrlAction); suggestedAction.setText('display_text'); suggestedAction.setPostbackData('postback_data_123'); // attach the action to a suggestion object Suggestion suggestion = new Suggestion(); suggestion.setAction(suggestedAction); return suggestion; }
Kalendertermin erstellen
Durch die Aktion „Kalendertermin erstellen“ wird die Kalender-App des Nutzers geöffnet und ein neuer Termin mit den angegebenen Informationen erstellt.
Beispiel
Im folgenden Code wird die Aktion „Kalendertermin erstellen“ gesendet. Informationen zu Formatierungs- und Wertoptionen finden Sie unter CreateCalendarEventAction
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'contentMessage': { 'text': 'Hello, world!', 'suggestions': [ { 'action': { 'text': 'Save to calendar', 'postbackData': 'postback_data_1234', 'fallbackUrl': 'https://www.google.com/calendar', 'createCalendarEventAction': { 'startTime': '2020-06-30T19:00:00Z', 'endTime': '2020-06-30T20:00:00Z', 'title': 'My calendar event', 'description': 'Description of the calendar event' } } } ] } }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); // Define a create calendar event suggested action let suggestions = [ { action: { text: 'Save to calendar', postbackData: 'postback_data_1234', createCalendarEventAction: { startTime: '2020-06-30T19:00:00Z', endTime: '2020-06-30T20:00:00Z', title: 'My calendar event', description: 'Description of the calendar event', }, } }, ]; let params = { messageText: 'Hello, world!', msisdn: '+12223334444', suggestions: suggestions, }; // Send a simple message with a create calendar event suggested action rbmApiHelper.sendMessage(params, function(response) { console.log(response); });
Java
import com.google.api.services.rcsbusinessmessaging.v1.model.CreateCalendarEventAction; import com.google.api.services.rcsbusinessmessaging.v1.model.SuggestedAction; import com.google.api.services.rcsbusinessmessaging.v1.model.Suggestion; import com.google.rbm.RbmApiHelper; … try { // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Create suggestions for chip list List<Suggestion> suggestions = new ArrayList<Suggestion>(); // creating a create calendar event suggested action CreateCalendarEventAction createCalendarEventAction = new CreateCalendarEventAction(); calendarEventAction.setTitle("My calendar event"); calendarEventAction.setDescription("Description of the calendar event"); calendarEventAction.setStartTime("2020-06-30T19:00:00Z"); calendarEventAction.setEndTime("2020-06-30T20:00:00Z"); // creating a suggested action based on a create calendar event action SuggestedAction suggestedAction = new SuggestedAction(); suggestedAction.setText("Save to calendar"); suggestedAction.setPostbackData("postback_data_1234"); suggestedAction.setCreateCalendarEventAction(createCalendarEventAction); // attaching action to a suggestion Suggestion suggestion = new Suggestion(); suggestion.setAction(suggestedAction); suggestions.add(suggestion); // Send simple text message with the suggestion action rbmApiHelper.sendTextMessage( "Hello, world!", "+12223334444", suggestions ); } catch(Exception e) { e.printStackTrace(); }
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service from rcs_business_messaging import messages # Create a calendar event suggested action suggestions = [ messages.CreateCalendarEventAction('Save to Calendar', 'reply:postback_data_1234', '2020-06-30T19:00:00Z', '2020-06-30T20:00:00Z', 'My calendar event', 'Description of the calendar event') ] # Create text message to send to user text_msg = messages.TextMessage('Hello, world!') cluster = messages.MessageCluster().append_message(text_msg) # Append suggestions for the message to send to the user for suggestion in suggestions: cluster.append_suggestion_chip(suggestion) # Send a simple message with suggested action to the device cluster.send_to_msisdn('+12223334444')
C#
using Google.Apis.RCSBusinessMessaging.v1.Data; using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); // Create a calendar event action CreateCalendarEventAction calendarEventAction = new CreateCalendarEventAction { Title = "My calendar event", Description = "Description of the calendar event", StartTime = "2020-06-30T19:00:00Z", EndTime = "2020-06-30T20:00:00Z" }; // Attach the calendar event action to a suggested action SuggestedAction suggestedAction = new SuggestedAction { CreateCalendarEventAction = calendarEventAction, Text = "Save to calendar", PostbackData = "postback_data_1234" }; // Attach the action to a suggestion object Suggestion suggestion = new Suggestion { Action = suggestedAction }; List<Suggestion> suggestions = new List<Suggestion> { suggestion }; rbmApiHelper.SendTextMessage( "Hello, world!", "+12223334444", suggestions );
Nachrichten schreiben
Die Aktion „Schreiben“ öffnet die Messaging-App des Nutzers, damit er Nachrichten an eine vordefinierte Telefonnummer senden kann, z. B. an eine Kundensupportnummer.
Es gibt drei Arten von Compose-Aktionen. Visuelle Beispiele finden Sie unter Text-, Audio- oder Videonachrichten verfassen.
- SMS schreiben: Die Messaging-App wird mit einem vorab ausgefüllten Text geöffnet, den der Nutzer senden kann.
- Eine Sprachnachricht verfassen: Die Messaging-App wird geöffnet und das Mikrofon gestartet, damit der Nutzer Audioinhalte aufnehmen kann.
- Videonachricht verfassen: Öffnet die Messaging-App und startet die Kamera, damit der Nutzer ein Video aufnehmen kann.
Beispiel
Im folgenden Code wird eine compose-Aktion gesendet. Informationen zu Formatierungs- und Wertoptionen finden Sie unter ComposeAction
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'contentMessage': { 'text': 'Hello, world!', 'suggestions': [ { 'action': { 'text': 'Compose a text message', 'postbackData': 'postback_data_123', 'composeAction': { 'composeTextMessage': { 'phoneNumber': '+15556667777' 'text': 'Draft to go into the send message text field.' } } } },{ 'action': { 'text': 'Compose an audio message', 'postbackData': 'postback_data_456', 'composeAction': { 'composeRecordingMessage': { 'phoneNumber': '+15556667777' 'type': 'ACTION_TYPE_AUDIO' } } } },{ 'action': { 'text': 'Compose a video message', 'postbackData': 'postback_data_789', 'composeAction': { 'composeRecordingMessage': { 'phoneNumber': '+15556667777' 'type': 'ACTION_TYPE_VIDEO' } } } } ] } }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); // Define a compose suggested action let suggestions = [ { action: { text: 'Compose a text message', postbackData: 'postback_data_123', 'composeAction': { 'composeTextMessage': { 'phoneNumber': '+15556667777' 'text': 'Draft to go into the send message text field.' } } } },{ action: { text: 'Compose an audio message', postbackData: 'postback_data_456', 'composeAction': { 'composeRecordingMessage': { 'phoneNumber': '+15556667777' 'type': 'ACTION_TYPE_AUDIO' } } } },{ action: { text: 'Compose a video message', postbackData: 'postback_data_789', 'composeAction': { 'composeRecordingMessage': { 'phoneNumber': '+15556667777' 'type': 'ACTION_TYPE_VIDEO' } } } } ]; let params = { messageText: 'Hello, world!', msisdn: '+12223334444', suggestions: suggestions, }; // Send a simple message with a dial suggested action rbmApiHelper.sendMessage(params, function(response) { console.log(response); });
Java
import com.google.api.services.rcsbusinessmessaging.v1.model.ComposeAction; import com.google.api.services.rcsbusinessmessaging.v1.model.ComposeRecordingMessage; import com.google.api.services.rcsbusinessmessaging.v1.model.ComposeTextMessage; import com.google.api.services.rcsbusinessmessaging.v1.model.SuggestedAction; import com.google.api.services.rcsbusinessmessaging.v1.model.Suggestion; import com.google.rbm.RbmApiHelper; … try { // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Create suggestions for chip list List<Suggestion> suggestions = new ArrayList<Suggestion>(); // creating compose text suggested action Suggestion composeTextSuggestion = getComposeTextAction() suggestions.add(composeTextSuggestion); // creating compose audio suggested action Suggestion composeAudioSuggestion = getComposeAudioAction() suggestions.add(composeAudioSuggestion); // Send simple text message with the suggestion action rbmApiHelper.sendTextMessage( "Hello, world!", "+12223334444", suggestions ); } catch(Exception e) { e.printStackTrace(); } /** * Creates a compose text suggested action. * @return A suggestion object for a compose text action. */ private Suggestion getComposeTextAction() { // creating a compose text suggested action ComposeTextMessage message = new ComposeTextMessage(); message.setPhoneNumber("+12223334444"); message.setText("Draft to go into the send message text field."); ComposeAction composeAction = new ComposeAction(); composeAction.setComposeTextMessage(message); // creating a suggested action based on a compose text action SuggestedAction suggestedAction = new SuggestedAction(); suggestedAction.setText("Send a text message"); suggestedAction.setPostbackData("postback_data_123"); suggestedAction.setComposeAction(composeAction); // attaching action to a suggestion Suggestion suggestion = new Suggestion(); suggestion.setAction(suggestedAction); return suggestion; } /** * Creates a compose audio suggested action. * @return A suggestion object for a compose audio action. */ private Suggestion getComposeAudioAction() { // creating a compose audio suggested action ComposeRecordingMessage message = new ComposeRecordingMessage(); message.setPhoneNumber("+12223334444"); message.setType("ACTION_TYPE_AUDIO"); ComposeAction composeAction = new ComposeAction(); composeAction.setComposeRecordingMessage(message); // creating a suggested action based on a compose text action SuggestedAction suggestedAction = new SuggestedAction(); suggestedAction.setText("Send an audio message"); suggestedAction.setPostbackData("postback_data_456"); suggestedAction.setComposeAction(composeAction); // attaching action to a suggestion Suggestion suggestion = new Suggestion(); suggestion.setAction(suggestedAction); return suggestion; }
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service from rcs_business_messaging import messages # Create a dial suggested action suggestions = [ messages.ComposeTextMessageAction( 'Send a text message', 'postback_data_123', '+15556667777', '') messages.ComposeRecordingMessageAction( 'Send an audio message', 'postback_data_456', '+15556667777', 'ACTION_TYPE_AUDIO') ] # Create text message to send to user text_msg = messages.TextMessage('Hello, world!') cluster = messages.MessageCluster().append_message(text_msg) # Append suggestions for the message to send to the user for suggestion in suggestions: cluster.append_suggestion_chip(suggestion) # Send a simple message with suggested action to the device cluster.send_to_msisdn('+12223334444')
C#
using Google.Apis.RCSBusinessMessaging.v1.Data; using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); // Create a compose text suggested action ComposeTextMessage composeTextMessage = new ComposeTextMessage{ PhoneNumber = "+15556667777" Text = "Draft to go into the send message text field." }; ComposeAction composeAction = new ComposeAction { ComposeTextMessage = composeTextMessage }; // Creating a suggested action based on a compose action SuggestedAction suggestedAction = new SuggestedAction { Text = "Send a text message", PostbackData = "postback_data_123", ComposeAction = composeAction }; // Attach action to a suggestion Suggestion suggestion = new Suggestion { Action = suggestedAction }; Listsuggestions = new List { suggestion }; rbmApiHelper.SendTextMessage( "Hello, world!", "+12223334444", suggestions );
Liste der Vorschlags-Chips
Ihr Kundenservicemitarbeiter sendet Listen mit Vorschlagschips und Nachrichten, um die Nutzer bei den nächsten Schritten zu unterstützen. Die Chipliste wird nur angezeigt, wenn sich die zugehörige Nachricht am Ende der Unterhaltung befindet. Alle nachfolgenden Nachrichten in der Unterhaltung (von einem Nutzer oder Ihrem Kundenservicemitarbeiter) überschreiben die Chipliste.
Die Chips in der Liste sind Antwortvorschläge und Aktionsvorschläge.
Chiplisten enthalten maximal 11 Vorschlags-Chips und jedes Chiplabel darf maximal 25 Zeichen lang sein.
Informationen zu Formatierungs- und Wertoptionen finden Sie unter AgentContentMessage
.
Rich Cards
Wenn Sie eine Reihe von Informationen, Medien oder Vorschlägen senden möchten, sollten Sie eine Rich Card verwenden. Mit Rich Cards können Kundenservicemitarbeiter mehrere Informationen in einer einzigen Nachricht senden.
Rich Cards können die folgenden Elemente enthalten:
- Bild oder Video
- Text für Titel
- Beschreibungstext
- Eine Liste mit Antwort- und Aktionsvorschlägen (maximal 4)
Eine Infokarte kann alle aufgeführten Elemente enthalten. Sie muss jedoch mindestens ein Bild, Video oder einen Titel enthalten, um gültig zu sein. Eine Rich Card kann maximal vier vorgeschlagene Aktionen oder vorgeschlagene Antworten enthalten. Eine Karte darf keine Kombination aus Aktions- und Antwortvorschlägen enthalten.
Dein Kundenservicemitarbeiter kann mehrere interaktive Karten in einem Karussell mit interaktiven Karten senden.
Die maximale Größe einer Rich-Card-Nutzlast beträgt 250 KB. In den Best Practices finden Sie Empfehlungen und Limits für die Größe von Mediendateien.
Kartenhöhe
Karten werden vertikal maximiert, um den Inhalt anzuzeigen. Die Mindesthöhe von Infokarten beträgt 112 dp und die maximale Höhe 344 dp. Wenn der Inhalt einer Karte nicht groß genug ist, um die Mindestkartenhöhe zu füllen, wird die Karte maximiert und die zusätzliche Höhe mit Weißraum gefüllt.
Medien in Infokarten müssen eine der folgenden Höhen haben:
- Klein: 112 DP
- Mittel: 168 DP
- Hoch: 264 Pixel hoch
Wenn die Medien nicht in die Abmessungen der Karte bei der ausgewählten Höhe passen, wird die Medienvorschau durch Zoomen und Zuschneiden der Medien ausgewählt.
Beispiel
Im folgenden Code wird eine Rich Card mit einem Bild und vorgeschlagenen Antworten gesendet. Informationen zu Formatierungs- und Wertoptionen finden Sie unter RichCard
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'contentMessage': { 'richCard': { 'standaloneCard': { 'thumbnailImageAlignment': 'RIGHT', 'cardOrientation': 'VERTICAL', 'cardContent': { 'title': 'Hello, world!', 'description': 'RBM is awesome!', 'media': { 'height': 'TALL', 'contentInfo':{ 'fileUrl': 'http://www.google.com/logos/doodles/2015/googles-new-logo-5078286822539264.3-hp2x.gif', 'forceRefresh': 'false' } }, 'suggestions': [ { 'reply': { 'text': 'Suggestion #1', 'postbackData': 'suggestion_1' } }, { 'reply': { 'text': 'Suggestion #2', 'postbackData': 'suggestion_2' } } ] } } } } }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); // Suggested replies to be used in the card let suggestions = [ { reply: { 'text': 'Suggestion #1', 'postbackData': 'suggestion_1', }, }, { reply: { 'text': 'Suggestion #2', 'postbackData': 'suggestion_2', }, }, ]; // Image to be displayed by the card let imageUrl = 'http://www.google.com/logos/doodles/2015/googles-new-logo-5078286822539264.3-hp2x.gif'; // Definition of the card parameters let params = { messageText: 'Hello, world!', messageDescription: 'RBM is awesome!', msisdn: '+12223334444', suggestions: suggestions, imageUrl: imageUrl, height: 'TALL', }; // Send rich card to device rbmApiHelper.sendRichCard(params, function(response) { console.log(response); });
Java
import com.google.api.services.rcsbusinessmessaging.v1.model.StandaloneCard; import com.google.api.services.rcsbusinessmessaging.v1.model.Suggestion; import com.google.rbm.cards.CardOrientation; import com.google.rbm.cards.MediaHeight; import com.google.rbm.RbmApiHelper; import com.google.rbm.SuggestionHelper; … try { // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Create suggestions for chip list List<Suggestion> suggestions = new ArrayList<Suggestion>(); suggestions.add( new SuggestionHelper("Suggestion #1", "suggestion_1").getSuggestedReply()); suggestions.add( new SuggestionHelper("Suggestion #2", "suggestion_2").getSuggestedReply()); String imageUrl = "http://www.google.com/logos/doodles/2015/googles-new-logo-5078286822539264.3-hp2x.gif"; // Create a standalone rich card to send to the user StandaloneCard standaloneCard = rbmApiHelper.createStandaloneCard( "Hello, world!", "RBM is awesome!", imageUrl, MediaHeight.MEDIUM, CardOrientation.VERTICAL, suggestions ); rbmApiHelper.sendStandaloneCard(standaloneCard, "+12223334444"); } catch(Exception e) { e.printStackTrace(); }
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service from rcs_business_messaging import messages # Suggested replies to be used in the card suggestions = [ messages.SuggestedReply('Suggestion #1', 'reply:suggestion_1'), messages.SuggestedReply('Suggestion #2', 'reply:suggestion_2') ] # Image to be displayed by the card image_url = 'http://www.google.com/logos/doodles/2015/googles-new-logo-5078286822539264.3-hp2x.gif'; # Define rich card structure rich_card = messages.StandaloneCard('VERTICAL', 'Hello, world!', 'RBM is awesome!', suggestions, image_url, None, None, 'MEDIUM') # Append rich card and send to the user cluster = messages.MessageCluster().append_message(rich_card) cluster.send_to_msisdn('+12223334444')
C#
using Google.Apis.RCSBusinessMessaging.v1.Data; using RCSBusinessMessaging; using RCSBusinessMessaging.Cards; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); List<Suggestion> suggestions = new List<Suggestion> { // Create suggestion chips new SuggestionHelper("Suggestion #1", "suggestion_1").SuggestedReply(), new SuggestionHelper("Suggestion #2", "suggestion_2").SuggestedReply() }; string imageUrl = "http://www.google.com/logos/doodles/2015/googles-new-logo-5078286822539264.3-hp2x.gif"; // Create rich card with suggestions StandaloneCard standaloneCard = rbmApiHelper.CreateStandaloneCard( "Hello, world!", "RBM is awesome", imageUrl, MediaHeight.TALL, CardOrientation.VERTICAL, suggestions ); // Send rich card to user rbmApiHelper.SendStandaloneCard(standaloneCard, "+12223334444");
Karussells mit interaktiven Chat-Nachrichten
Wenn Sie Nutzern mehrere Optionen zur Auswahl präsentieren möchten, verwenden Sie ein Karussell mit Rich Cards. Karussells bestehen aus mehreren Rich-Cards, mit denen Nutzer Elemente vergleichen und einzeln darauf reagieren können.
Karussells können mindestens zwei und maximal zehn Infokarten enthalten. Rich-Karten in Karussells müssen den allgemeinen Anforderungen an Rich-Karten für Inhalt und Höhe entsprechen.
Die maximale Größe der Nutzlast eines Karussells mit Rich Cards beträgt 250 KB. In den Best Practices finden Sie Empfehlungen und Limits für die Größe von Mediendateien.
Abgeschnittener Text
Ähnlich wie bei Rich-Cards wirken sich viele Faktoren (z. B. Bildschirmauflösung, Pixeldichte und Nutzereinstellungen) darauf aus, wie Karten für Endnutzer angezeigt werden. In einem Karussell wird die Höhe aller Karten jedoch durch die Höhe der ersten Karten bestimmt. Die Kartenhöhe wirkt sich auf den Titel, die Beschreibung und die Kürzung von Vorschlägen aus.
Wenn auf einem Gerät aufgrund von Displayeinschränkungen oder der Kartenhöhe nicht alle Elemente einer Karte angezeigt werden können, kürzt RBM die Karte so zu, dass sie auf dem Gerät angezeigt werden kann. Dabei wird folgende Logik verwendet:
- Beschränken Sie die Beschreibung auf eine Zeile.
- Reduzieren Sie den Titel auf eine Zeile.
- Lassen Sie Vorschläge aus, die nicht auf die Karte passen, beginnend mit dem Ende der definierten Liste.
- Lassen Sie die Beschreibung weg.
- Den Titel weglassen.
Um Abschneiden zu vermeiden, sollten Titel und Beschreibungen so kurz wie möglich sein. Verwenden Sie für hohe Medien entweder einen Titel und eine Beschreibung oder einen Vorschlag. Verwenden Sie für mittlere Medien bis zu zwei Vorschläge. Bei kurzen Medien können Sie bis zu drei Vorschläge verwenden. Damit auf der Karte vier Vorschläge angezeigt werden, sollten Sie keine Medien einfügen.
Achten Sie darauf, dass die Karten in Bezug auf Größe und Länge des Inhalts ungefähr gleich sind. Laden Sie bei Bedarf größere Karten in das Karussell ein, um Abschneidungen bei den folgenden Karten zu vermeiden.
Beispiel
Im folgenden Code wird ein Karussell mit interaktiven Karten gesendet. Informationen zu Formatierungs- und Wertoptionen finden Sie unter RichCard
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'contentMessage': { 'richCard': { 'carouselCard': { 'cardWidth':'MEDIUM', 'cardContents': [ { 'title':'Card #1', 'description':'The description for card #1', 'suggestions': [ { 'reply': { 'text':'Card #1', 'postbackData':'card_1' } } ], 'media': { 'height':'MEDIUM', 'contentInfo': { 'fileUrl':'https://storage.googleapis.com/kitchen-sink-sample-images/cute-dog.jpg', 'forceRefresh':'false' } } }, { 'title':'Card #2', 'description':'The description for card #2', 'suggestions': [ { 'reply': { 'text':'Card #2', 'postbackData':'card_2' } } ], 'media': { 'height':'MEDIUM', 'contentInfo': { 'fileUrl':'https://storage.googleapis.com/kitchen-sink-sample-images/elephant.jpg', 'forceRefresh': 'false' } } } ] } } } }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); // Images for the carousel cards let card1Image = 'https://storage.googleapis.com/kitchen-sink-sample-images/cute-dog.jpg'; let card2Image = 'https://storage.googleapis.com/kitchen-sink-sample-images/elephant.jpg'; // Define the card contents for a carousel with two cards, each with one suggested reply let cardContents = [ { title: 'Card #1', description: 'The description for card #1', suggestions: [ { reply: { text: 'Card #1', postbackData: 'card_1', } } ], media: { height: 'MEDIUM', contentInfo: { fileUrl: card1Image, forceRefresh: false, }, }, }, { title: 'Card #2', description: 'The description for card #2', suggestions: [ { reply: { text: 'Card #2', postbackData: 'card_2', } } ], media: { height: 'MEDIUM', contentInfo: { fileUrl: card2Image, forceRefresh: false, }, }, }, ]; // Definition of carousel card let params = { msisdn: '+12223334444', cardContents: cardContents, }; // Send the device the carousel card defined above rbmApiHelper.sendCarouselCard(params, function(response) { console.log(response); });
Java
import com.google.api.services.rcsbusinessmessaging.v1.model.CardContent; import com.google.api.services.rcsbusinessmessaging.v1.model.Suggestion; import com.google.rbm.cards.CardOrientation; import com.google.rbm.cards.CardWidth; import com.google.rbm.cards.MediaHeight; import com.google.rbm.RbmApiHelper; import com.google.rbm.SuggestionHelper; … try { // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); List cardContents = new ArrayList(); // Images for the carousel cards String card1Image = "https://storage.googleapis.com/kitchen-sink-sample-images/cute-dog.jpg"; // Create suggestions for first carousel card List card1Suggestions = new ArrayList(); card1Suggestions.add( new SuggestionHelper("Card #1", "card_1")); cardContents.add( new StandaloneCardHelper( "Card #1", "The description for card #1", card1Image, card1Suggestions) .getCardContent(MediaHeight.SHORT) ); // Images for the carousel cards String card2Image = "https://storage.googleapis.com/kitchen-sink-sample-images/elephant.jpg"; // Create suggestions for second carousel card List card2Suggestions = new ArrayList(); card2Suggestions.add( new SuggestionHelper("Card #2", "card_2")); cardContents.add( new StandaloneCardHelper( "Card #2", "The description for card #2", card2Image, card2Suggestions) .getCardContent(MediaHeight.SHORT) ); // Send the carousel to the user rbmApiHelper.sendCarouselCards(cardContents, CardWidth.MEDIUM, "+12223334444"); } catch(Exception e) { e.printStackTrace(); }
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service from rcs_business_messaging import messages # Images for the carousel cards card_image_1 = 'https://storage.googleapis.com/kitchen-sink-sample-images/cute-dog.jpg'; card_image_2 = 'https://storage.googleapis.com/kitchen-sink-sample-images/elephant.jpg'; # Suggested replies to be used in the cards suggestions1 = [ messages.SuggestedReply('Card #1', 'reply:card_1') ] suggestions2 = [ messages.SuggestedReply('Card #2', 'reply:card_2') ] # Define the card contents for a carousel with two cards, # each with one suggested reply card_contents = [] card_contents.append(messages.CardContent('Card #1', 'The description for card #1', card_image_1, 'MEDIUM', suggestions1)) card_contents.append(messages.CardContent('Card #2', 'The description for card #2', card_image_2, 'MEDIUM', suggestions2)) # Send the device the carousel card defined above carousel_card = messages.CarouselCard('MEDIUM', card_contents) cluster = messages.MessageCluster().append_message(carousel_card) cluster.send_to_msisdn('+12223334444')
C#
using Google.Apis.RCSBusinessMessaging.v1.Data; using RCSBusinessMessaging; using RCSBusinessMessaging.Cards; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); // Image references to be used in the carousel cards string card1Image = "https://storage.googleapis.com/kitchen-sink-sample-images/cute-dog.jpg"; string card2Image = "https://storage.googleapis.com/kitchen-sink-sample-images/elephant.jpg"; // Suggestion chip lists to be used in carousel cards List<Suggestion> suggestions1 = new List<Suggestion> { new SuggestionHelper("Card #1", "card_1").SuggestedReply() }; List<Suggestion> suggestions2 = new List<Suggestion> { new SuggestionHelper("Card #2", "card_2").SuggestedReply() }; // Create the card content for the carousel List<CardContent> cardContents = new List<CardContent> { // Add items as card content new StandaloneCardHelper( "Card #1", "The description for card #1", card1Image, suggestions1).GetCardContent(), new StandaloneCardHelper( "Card #2", "The description for card #2", card2Image, suggestions2).GetCardContent() }; // Send the carousel to the user rbmApiHelper.SendCarouselCards(cardContents, CardWidth.MEDIUM, msisdn);