RBM-Agents kommunizieren mit Nutzern, indem sie Nachrichten senden und empfangen. Der Agent sendet Nachrichtenanfragen an die RCS Business Messaging API, um Nachrichten an Nutzer zu senden. Eine einzelne Anfrage kann Text, eine Rich Card, ein Bild oder ein Video sowie vorgeschlagene Antworten und vorgeschlagene Aktionen enthalten.
Wenn Sie eine Nachricht an einen Nutzer senden, dessen Gerät RCS nicht unterstützt oder auf dem RCS nicht aktiviert ist, 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 gestartet 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 vom Gerät eines Nutzers nicht unterstützt werden, gibt die RBM-Plattform einen Fehler zurück und sendet Ihre Nachricht nicht.
Die maximale Größe der gesamten als String formatierten AgentMessage beträgt 250 KB.
An Offlinenutzer senden
Die RBM-Plattform akzeptiert eine Nachricht weiterhin zur Zustellung, wenn der Empfänger offline ist. Sie erhalten eine 200 OK-Antwort. Die RBM-Plattform speichert die Nachricht und versucht 30 Tage lang, sie noch einmal zu senden. 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 Ihres Agents können Sie vor Ablauf dieses Zeitlimits eine nicht zugestellte Nachricht widerrufen. Dadurch wird verhindert, dass Offlinenutzer eine veraltete Nachricht erhalten, wenn sie wieder online sind. Es gibt mehrere Möglichkeiten, eine Nachricht zu widerrufen:
- Senden Sie eine Widerrufsanfrage, um den Widerruf auszulösen.
- Legen Sie ein Ablaufdatum für die Nachricht fest, damit die Nachricht zum entsprechenden Zeitpunkt automatisch widerrufen wird.
Ablaufzeit für Nachrichten festlegen
Ist die Nachricht Ihres Agents zeitsensitiv? OTPs sind beispielsweise nur für einen kurzen Zeitraum gültig. Zeitlich begrenzte Angebote laufen ab. Und Terminerinnerungen sind nach dem Datum des Termins nicht mehr relevant. Damit Nachrichten zeitnah und relevante Nachrichten erhalten, sollten Sie einen Ablaufzeitpunkt festlegen. Dadurch wird verhindert, dass Nutzer, die offline sind, veraltete Inhalte erhalten, wenn sie wieder online sind. Die Ablaufzeit ist auch ein guter Hinweis zum Aufrufen Ihrer Fallback-Messaging-Strategie, damit Nutzer die benötigten Informationen rechtzeitig erhalten.
Wenn Sie einen Nachrichtenablauf festlegen möchten, geben Sie eines der folgenden Felder in der Agent-Nachricht an:
expireTime
: der genaue Zeitpunkt in UTC, zu dem die Nachricht abläuft.ttl
(Gültigkeitsdauer): Die Zeitspanne bis zum Ablauf der Nachricht.
Informationen zu Formatierungs- und Wertoptionen finden Sie unter AgentMessage
.
Sobald die Nachricht abgelaufen ist, stoppt die RBM-Plattform den Zustellversuch und wird automatisch widerrufen. Dies kann jedoch in seltenen Fällen fehlschlagen. Die API könnte den Widerruf beispielsweise auslösen, während die RBM-Plattform die Nachricht noch zugestellt hat. RBM sendet ein Benachrichtigungsereignis an Ihren Webhook, um zu bestätigen, ob die abgelaufene Nachricht erfolgreich widerrufen wurde.
Text
Die einfachsten Nachrichten bestehen aus Text. Textnachrichten eignen sich am besten, um Informationen ohne visuelle Elemente, komplexe Interaktionen oder Antworten zu kommunizieren.
Beispiel
Mit dem folgenden Code wird eine einfache 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); });Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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(); }Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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')Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
C#
using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); rbmApiHelper.SendTextMessage( "Hello, world!", "+12223334444", );Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
Grundlegender Nachrichteninhalt – SMS-Umwandlung
Mobilfunkanbieter haben Abrechnungsmodelle eingeführt, die die Übertragung von SMS nach RBM unterstützen. Eine RBM-Nachricht mit bis zu 160 UTF-8-Zeichen wird als einfache Nachricht bezeichnet.
Denken Sie beim Erstellen einer Anfrage zum Senden einer einfachen Nachricht daran, dass Zeichen als 1 Byte (UTF-8) gezählt werden. Wenn Sie eine Nachricht senden, die Sonderzeichen wie Emojis oder einen Multibyte-Zeichensatz enthält, zählt jedes Zeichen als 2 UTF-8-Zeichen.
Geben Sie Text in das Feld ein, um die Länge zu prüfen:
Einmalpasswörter zur Nutzerbestätigung
Mit RBM kannst du Einmalpasswörter (One-Time Passwords, OTP) zur automatischen Nutzerbestätigung mit der SMS Retriever API senden. Weitere Informationen zum SMS Retriever und zugehörigen APIs finden Sie in der Dokumentation zum SMS Retriever. Details zur automatischen Nutzerbestätigung in Apps, die bei der SMS Retriever API registriert sind, findest du in diesem Flussdiagramm.
Während der Verifizierung wartet die SMS Retriever API auf eine RBM-Nachricht. Diese Nachricht muss ein OTP und einen Hash enthalten, der die Anwendung identifiziert. Nachdem der Hash der Anwendung zugeordnet wurde, wird das OTP extrahiert und zur automatischen Nutzerüberprüfung an die Anwendung weitergeleitet.
Hier ist ein Beispiel für eine RBM-Textnachricht zur Nutzerbestätigung: Ihr Code lautet <OTP> <App-Hash>.
Beispiel: Your code is 123456 M8tue43FGT.
Medien- und PDF-Dateien
Wenn Sie eine Nachricht mit einer Bild-, Video- oder PDF-Datei senden, muss der Agent eine öffentlich zugängliche URL für den Inhalt angeben oder die Datei direkt hochladen. Für Mediendateien können Sie auch eine Miniaturansicht angeben, auf der Nutzer eine Vorschau des Inhalts sehen können, bevor sie darauf klicken.
Die RBM-Plattform speichert Dateien 60 Tage lang im Cache und die API gibt eine Datei-ID zurück, die der Agent in Nachrichten an Nutzer aufnehmen kann. Nach 60 Tagen entfernt RBM Dateien aus dem Cache.
Empfehlungen und Beschränkungen für Dateigrößen finden Sie in den Best Practices.
Beispiel für eine Datei-URL
Mit dem 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); });Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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(); }Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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')Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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");Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
Alternativ können Sie Medien hochladen, bevor Sie sie in einer Nachricht mit files.create
senden.
Beispiel für Dateiupload
Mit dem folgenden Code werden eine Videodatei und eine Miniaturansichtsdatei hochgeladen. Anschließend werden beide Dateien in einer Nachricht gesendet. Formatierungs- und Werteoptionen 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 | Dokumententyp | Erweiterung | Kompatibel mit Rich Cards |
---|---|---|---|
application/pdf | 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
Mit vorgeschlagenen Antworten werden Nutzer durch Unterhaltungen geführt, indem sie Antworten geben, die der Agent weiß, auf die er reagieren soll. Der Agent sendet vorgeschlagene Antworten in Listen mit Vorschlags-Chips oder in Rich Cards.
Wenn ein Nutzer auf eine vorgeschlagene Antwort tippt, erhält der Agent ein Ereignis mit dem Antworttext und den Postback-Daten.
Vorgeschlagene Antworten dürfen maximal 25 Zeichen lang sein.
Beispiel
Mit dem folgenden Code wird eine SMS mit zwei Antwortvorschlägen 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); });Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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(); }Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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')Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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 );Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
Vorgeschlagene Aktionen
Mit vorgeschlagenen Aktionen werden Nutzer durch Unterhaltungen geführt, da die nativen Funktionen ihres Geräts nicht mehr verfügbar sind. Ihr Agent kann Nutzern vorschlagen, eine Nummer zu wählen, einen Standort auf einer Karte zu öffnen, einen Standort freizugeben, eine URL zu öffnen oder einen Kalendertermin zu erstellen. Der Agent sendet vorgeschlagene Aktionen in Listen mit Vorschlags-Chips oder in Rich Cards.
Wenn ein Nutzer auf eine vorgeschlagene Aktion tippt, erhält der Agent 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
Durch die Aktion „Dial“ wird der Nutzer aufgefordert, eine vom Agent angegebene Telefonnummer zu wählen. Telefonnummern müssen aus einem +
am Anfang sowie der Ländervorwahl und der Ortsvorwahl bestehen, dürfen jedoch keine Trennzeichen enthalten. Beispiel: +14155555555
.
Beispiel
Mit dem folgenden Code wird eine Wählaktion 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); });Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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(); }Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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')Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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 );Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
Ort ansehen
Mit der Aktion „Standort ansehen“ wird ein Standort in der Standardkarten-App des Nutzers angezeigt. Sie können den Standort entweder anhand des Breiten- und Längengrads oder mit einer Abfrage basierend auf dem aktuellen Standort des Nutzers angeben. Sie können auch ein benutzerdefiniertes Label für die Markierung festlegen, das in der Karten-App angezeigt wird.
Beispiel
Mit dem folgenden Code wird eine Aktion zum Ansehen 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); });Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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(); }Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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')Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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 );Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
Standort teilen
Mit der Aktion „Standort teilen“ kann der Nutzer einen Standort an Ihren Agent senden. Der vom Nutzer angegebene Standort ist nicht unbedingt der Standort des Nutzers.
Beispiel
Mit dem folgenden Code wird eine Aktion zum Freigeben des Standorts 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); });Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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(); }Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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')Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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 );Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
URL öffnen
Durch die Aktion „URL öffnen“ wird der Webbrowser des Nutzers unter der angegebenen URL geöffnet. Wenn eine Anwendung als Standard-Handler für die URL registriert ist, wird sie stattdessen geöffnet. Das Symbol für die Aktion ist das Symbol der Anwendung.
Beispiel
Mit dem folgenden Code wird eine Aktion für eine offene 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); });Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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(); }Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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')Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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 );Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
Kalendertermin erstellen
Mit der Aktion „Kalendertermin erstellen“ wird die Kalender-App des Nutzers geöffnet und ein neuer Termin mit den angegebenen Informationen erstellt.
Beispiel
Mit dem folgenden Code wird eine Aktion zum Erstellen eines Kalendertermins 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); });Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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(); }Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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')Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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 );Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
Liste mit Vorschlags-Chips
Ihr Agent sendet Vorschlags-Chips-Listen mit Nachrichten, um Nutzer bei nachfolgenden Aktionen 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 Agent) überschreiben die Chipliste.
Die Chips in der Liste sind vorgeschlagene Antworten und vorgeschlagene Aktionen.
Chiplisten dürfen maximal 11 Vorschläge-Chips enthalten und jedes Chip-Label darf maximal 25 Zeichen lang sein.
Informationen zu Formatierungs- und Wertoptionen finden Sie unter AgentContentMessage
.
Rich Cards
Wenn Sie einen Block verwandter Informationen, Medien oder Vorschläge senden müssen, sollten Sie eine Rich Card senden. Mit Rich Cards kann der Agent mehrere Informationseinheiten in einer einzigen Nachricht senden.
Rich Cards können die folgenden Elemente enthalten:
- Bild/Video
- Text für Titel
- Beschreibungstext
- Eine Liste mit Antwortvorschlägen und vorgeschlagenen Aktionen (maximal 4)
Eine Rich Card kann alle aufgeführten Elemente enthalten. Damit sie gültig ist, muss sie jedoch mindestens ein Bild, ein Video oder einen Titel enthalten. Eine Rich Card kann maximal vier vorgeschlagene Aktionen oder vorgeschlagene Antworten enthalten. Sie darf auf einer einzelnen Karte keine Kombination aus vorgeschlagenen Aktionen und Antwortvorschlägen enthalten.
Ihr Agent kann mehrere Rich Cards in einem Rich Cards-Karussell senden.
Kartenhöhe
Die Karten werden vertikal maximiert, damit sie in den Inhalt passen. Rich Cards haben eine Mindesthöhe von 112 DP und eine maximale Höhe von 344 DP. Wenn der Inhalt einer Karte nicht groß genug ist, um die Mindesthöhe der Karte zu füllen, wird die Karte maximiert und füllt die zusätzliche Höhe mit Leerzeichen.
Medien in Rich Cards müssen in einer der folgenden drei Höhen angegeben werden:
- Kurz: 112 DP
- Mittel: 168 DP
- Übergröße: 264 DP
Wenn die Medien aufgrund der ausgewählten Höhe nicht den Abmessungen innerhalb der Karte entsprechen, wird die Medienvorschau durch Zoomen und Zuschneiden der Medien ausgewählt.
Beispiel
Mit dem folgenden Code wird eine umfangreiche Karte 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); });Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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(); }Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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')Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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");Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
Kartenkarussells
Wenn Sie einem Nutzer mehrere Optionen zur Auswahl anbieten müssen, verwenden Sie ein Rich-Kartenkarussell. Karussells verbinden mehrere Rich Cards, sodass Nutzer Artikel vergleichen und auf jedes einzelne reagieren können.
Karussells können mindestens zwei und maximal zehn Rich Cards enthalten. Rich Cards in Karussells müssen den allgemeinen Anforderungen an Rich Cards in Bezug auf Inhalt und Höhe entsprechen.
Abgeschnittener Text
Ähnlich wie bei Rich-Karten beeinflussen viele Faktoren (z. B. Bildschirmauflösung, Pixeldichte und Nutzereinstellungen) die Darstellung der Karten für Endnutzer. In einem Karussell definiert jedoch die Höhe der ersten Karten die Höhe aller Karten im Karussell. Die Kartenhöhe wirkt sich auf den Titel, die Beschreibung und die Kürzung von Vorschlägen aus.
Wenn ein Gerät aufgrund von Anzeigeeinschränkungen oder der Kartenhöhe nicht alle Elemente einer Karte anzeigen kann, schneidet RBM die Karte mit der folgenden Logik so lange, bis sie auf dem Gerät angezeigt werden kann:
- Verkürzen Sie die Textzeile auf eine Zeile.
- Verkürzen Sie den Titel auf eine Zeile.
- Lassen Sie Vorschläge aus, die nicht in die Karte passen. Beginnen Sie am Ende der definierten Liste.
- Lassen Sie die Beschreibung weg.
- Lassen Sie den Titel weg.
Titel und Beschreibungen sollten so kurz wie möglich sein, damit sie nicht abgeschnitten werden. 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. Verwenden Sie für kurze Medien bis zu drei Vorschläge. Damit vier Vorschläge untereinander Platz finden, fügen Sie der Karte keine Medien hinzu.
Größe und Länge von Karten sollten in etwa gleich groß sein. Laden Sie das Karussell bei Bedarf mit größeren Karten von vorn, um zu vermeiden, dass die Karten abgeschnitten werden.
Beispiel
Mit dem folgenden Code wird ein interaktives Kartenkarussell 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); });Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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(); }Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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')Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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);Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.