Nachrichten senden

RCS for Business-Agents kommunizieren mit Nutzern, indem sie Nachrichten senden und empfangen. Wenn Ihr Agent Nachrichten an Nutzer senden soll, sendet er Nachrichtenanfragen an die RCS Business Messaging API. Eine einzelne Anfrage kann Text, interaktive Chat-Nachrichten, Media- und PDF-Dateien, Antwortvorschläge und vorgeschlagene Aktionen enthalten.

Die RCS for Business-Plattform gibt in bestimmten Situationen Fehler zurück, um Sie bei der Verwaltung der Nachrichtenübermittlung zu unterstützen:

  • Wenn Sie eine Nachricht an einen Nutzer senden, dessen Gerät RCS nicht unterstützt oder auf dem RCS nicht aktiviert ist, gibt die RCS for Business-Plattform den Fehler 404 NOT_FOUND 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 RCS for Business-Plattform den Fehler 404 NOT_FOUND zurück.
  • Wenn Sie eine Nachricht mit Funktionen senden, die vom Gerät eines Nutzers nicht unterstützt werden, gibt die RCS for Business-Plattform den Fehler 400 INVALID_ARGUMENT zurück und Ihre Nachricht wird nicht zugestellt.

Im Rahmen Ihrer Multi-Channel-Messaging-Strategie ist es am besten, Nachrichten zurückzurufen, die nach einer angemessenen Zeit nicht zugestellt werden, und sie über einen anderen Kanal zu senden. Wenn Sie Nachrichten zu einem vordefinierten Zeitpunkt automatisch widerrufen möchten, legen Sie ein Ablaufdatum für Nachrichten fest.

Empfänger ist offline

Die RCS for Business-Plattform akzeptiert weiterhin Nachrichten zur Zustellung, wenn der Empfänger offline ist. Sie erhalten die Antwort „200 OK“. Die RCS for Business-Plattform speichert die Nachricht und versucht 30 Tage lang, sie noch einmal zuzustellen. Sie müssen RCS for Business nicht bitten, die Nachricht noch einmal zu senden.

Bei RCS for Business werden nicht zugestellte Nachrichten 30 Tage nach dem Senden gelöscht.

Je nach Anwendungsfall Ihres Agents kann es sinnvoll sein, eine nicht zugestellte Nachricht vor Ablauf dieses 30‑Tage-Timeouts zurückzurufen. Durch den Widerruf kann verhindert werden, dass Offline-Nutzer eine veraltete Nachricht erhalten, wenn sie wieder online sind. Es gibt mehrere Möglichkeiten, eine Nachricht zurückzurufen:

Ablaufdatum für Nachrichten festlegen

Ist die Nachricht Ihres Kundenservicemitarbeiters zeitkritisch? Einmalpasswörter sind beispielsweise nur für kurze Zeit gültig. Zeitlich begrenzte Angebote laufen ab. Terminerinnerungen sind nach dem Termin nicht mehr relevant. Damit Nachrichten zeitnah und relevant bleiben, sollten Sie ein Ablaufdatum für Nachrichten festlegen. So wird verhindert, dass Nutzer, die offline sind, veraltete Inhalte erhalten, wenn sie wieder online gehen. Das Ablaufdatum ist auch ein guter Hinweis, um Ihre Fallback-Messaging-Strategie zu aktivieren, damit Nutzer rechtzeitig die benötigten Informationen erhalten.

Wenn Sie ein Ablaufdatum für eine Nachricht festlegen möchten, geben Sie eines der folgenden Felder in der Agent-Nachricht an:

  • expireTime: die genaue Uhrzeit in UTC, zu der die Nachricht abläuft.
  • ttl(Gültigkeitsdauer): die Zeitspanne, nach der die Nachricht abläuft.

Informationen zu Formatierungs- und Wertoptionen finden Sie unter AgentMessage.

Der Höchstwert für ttl und expireTime beträgt 15 Tage nach dem Senden der Mitteilung.

Es gibt zwar keinen Mindestwert für ttl und expireTime, aber es wird empfohlen, mindestens 10 Sekunden nach dem Senden der Nachricht zu warten, um die Wahrscheinlichkeit zu verringern, dass Sie sowohl eine Benachrichtigung über den Widerruf als auch über die Zustellung erhalten.

Gültigkeitsdauer (TTL) einer Nachricht

Wenn Sie einen TTL-Wert für eine RCS for Business-Nachricht festlegen, geben Sie an, wie lange die Nachricht als gültig und zustellbar gelten soll. Wenn die Nachricht innerhalb dieses TTL-Zeitraums nicht erfolgreich auf dem Gerät des Nutzers zugestellt wird, versucht die RCS for Business-Plattform automatisch, sie zu widerrufen.

Wenn Sie eine Nachricht zurückrufen, fordern Sie die RCS for Business-Plattform auf, die Zustellung dieser Nachricht zu beenden. Diese Aktion wirkt sich jedoch nur auf zukünftige Zustellversuche aus. Wenn das Gerät eines Nutzers die Nachricht bereits erfolgreich abgerufen hat, wird die Nachricht verarbeitet und die RCS for Business-Plattform kann die Nachricht nicht mehr vom Gerät des Nutzers entfernen.

Das sollten Sie in Bezug auf Benachrichtigungen wissen:

  • Nachricht innerhalb der TTL zugestellt:Wenn das Gerät des Nutzers online geht und die Nachricht vor Ablauf der TTL empfängt, erhalten Sie eine DELIVERED-Benachrichtigung. Es wird keine Benachrichtigung über den Widerruf gesendet, da die Nachricht erfolgreich zugestellt wurde. Das ist das häufigste und erwartete Szenario.

  • Nachricht nicht vor Ablauf der TTL zugestellt:Wenn die TTL abläuft, bevor die Nachricht das Gerät des Nutzers erreicht (z. B. weil das Gerät offline ist), versucht die RCS for Business-Plattform, die Nachricht zurückzurufen. Sie erhalten eine TTL_EXPIRATION_REVOKED-Benachrichtigung, die darauf hinweist, dass die Nachricht erfolgreich aus der Zustellungswarteschlange entfernt wurde. In diesem Fall erhält der Nutzer die Nachricht nicht.

Empfehlungen für den Umgang mit Grenzfall-Szenarien

Unser System verarbeitet die Zustellung von RCS for Business-Nachrichten und das Ablaufen der TTL parallel. Aus diesem Grund kann es sehr selten vorkommen, dass der Zeitpunkt von Benachrichtigungen unerwartet ist. Sie erhalten beispielsweise sowohl eine Benachrichtigung über die Zustellung als auch über die TTL oder keine von beiden.

Hier sind unsere Empfehlungen für den Umgang mit Benachrichtigungen zu RCS for Business-Nachrichten:

  • DELIVERED-Benachrichtigung:Wenn Sie eine DELIVERED-Benachrichtigung für eine Nachricht erhalten, bedeutet das, dass die Nachricht den Nutzer erreicht hat. Sie können alle nachfolgenden TTL-Benachrichtigungen für diese bestimmte Nachricht ignorieren.

  • TTL_EXPIRATION_REVOKED-Benachrichtigung:Wenn Sie eine TTL-Benachrichtigung mit dem Status TTL_EXPIRATION_REVOKED erhalten, bedeutet das, dass das RCS for Business-System nicht mehr versucht, diese bestimmte Nachricht zuzustellen. Sie sollten diese Nachricht als nicht zugestellt behandeln und bei Bedarf mit Ihrer Fallback-Strategie fortfahren.

  • TTL-Benachrichtigung mit einem anderen Status:Wenn Sie eine TTL-Benachrichtigung mit einem anderen Status erhalten, deutet dies auf einen nicht eindeutigen Widerrufsversuch hin.

    • Leiten Sie für wichtige Nachrichten wie Einmalpasswörter die Fallback-Methode ein.
    • Bei nicht kritischen Nachrichten entscheiden Sie, ob Sie den Fallback initiieren möchten.
  • Keine Benachrichtigungen:In seltenen Fällen kann es vorkommen, dass das System keine TTL-Benachrichtigung sendet und der Client auch keine Zustellbenachrichtigung generiert. Das ist ein extrem seltener Fall.

Nachrichtentyp festlegen

Die RBM API enthält das Feld messageTrafficType zum Kategorisieren von Nachrichten. Mit Agent-Anwendungsfällen wird weiterhin das Verhalten von Agents und die anzuwendenden Geschäftsregeln definiert. Mit messageTrafficType lässt sich der Inhalt von Nachrichten jedoch detaillierter kategorisieren. So kann ein einzelner Kundenservicemitarbeiter mehrere Anwendungsfälle bearbeiten. Derzeit gibt es keine Auswirkungen auf bestehende Anwendungsfälle für Kundenservicemitarbeiter oder Geschäftsregeln.

Dieses Feld ist optional, wird aber empfohlen. Wenn Sie es jetzt festlegen, erhalten Sie keine Fehlermeldung, wenn das Feld erforderlich wird.

Um den Nachrichtentraffictyp festzulegen, weisen Sie jeder Nachricht basierend auf ihrem Inhalt das entsprechende messageTrafficType zu. RCS for Business unterstützt die folgenden Traffic-Typen.

Traffictyp Inhalt der Nachricht Anwendungsfall eines Agents
AUTHENTICATION Für Authentifizierungsnachrichten. OTP
TRANSACTION Für Nachrichten zu den bestehenden Diensten oder Produkten eines Nutzers. z. B. Bestätigungen, Zahlungsbelege oder Buchungsdetails. Transaktional oder Mehrfachnutzung
PROMOTION Für Werbenachrichten wie Angebote, Rabatte, Ankündigungen oder andere Werbeinhalte. Aktionsangebot oder Mehrfachnutzung
SERVICEREQUEST Für Nachrichten zu Diensten, die der Nutzer ausdrücklich angefordert hat. OTP, Transaktions-, Werbe- oder Mehrfachnutzung
ACKNOWLEDGEMENT Für Nachrichten, mit denen die Aktion eines Nutzers bestätigt wird, insbesondere eine Abmeldeanfrage. Das bestätigt, dass die Anfrage des Nutzers eingegangen ist und bearbeitet wird. OTP, Transaktions-, Werbe- oder Mehrfachnutzung

Wenn kein Traffictyp festgelegt ist, weist das System den Standardtyp für den Anwendungsfall des Agents zu.

Anwendungsfall eines Agents Standard-Traffic-Typ
OTP AUTHENTICATION
Transaktional TRANSACTION
Werbung PROMOTION
Mehrfachverwendung MESSAGE_TRAFFIC_TYPE_UNSPECIFIED

Agents für mehrere Zwecke haben keinen Standard-Traffic-Typ. Sie müssen den Traffictyp für jede Nachricht basierend auf ihrem Inhalt explizit festlegen. Wenn Sie den Wert MESSAGE_TRAFFIC_TYPE_UNSPECIFIED nicht ersetzen, tritt ein Fehler auf.

Größenbeschränkungen für Nachrichten

Die maximale Größe des gesamten in einen String umgewandelten AgentMessage beträgt 250 KB. Der Textteil der Nachricht ist auf 3.072 Zeichen begrenzt.

Um unerwarteten Datenverbrauch für Nutzer zu vermeiden, darf die maximale Größe einer Datei, die über RCS for Business gesendet werden kann, 100 MiB nicht überschreiten. Die kombinierte Gesamtgröße aller Media- und PDF-Anhänge in einer einzelnen RCS for Business-Nachricht darf ebenfalls 100 MiB nicht überschreiten. (1 MiB = 1.048.576 Byte) Weitere Informationen finden Sie unter Media- und PDF-Dateien.

Text

Die einfachsten Nachrichten bestehen aus Text. SMS eignen sich am besten, um Informationen zu kommunizieren, ohne dass Bilder, komplexe Interaktionen oder Antworten erforderlich sind.

Beispiel

Mit dem folgenden Code wird eine Nur-Text-Nachricht 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!"
  },
  "messageTrafficType": "PROMOTION"
}'

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-Beispielagenten.

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-Beispielagenten.

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-Beispielagenten.

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-Beispielagenten.

Inhalt der einfachen Nachricht – Umwandlung von SMS

Mobilfunkanbieter haben Abrechnungsmodelle eingeführt, um die Umstellung von SMS-Nachrichten auf RCS for Business zu unterstützen. Eine RCS for Business-Nachricht mit bis zu 160 UTF-8-Zeichen wird als „Basic Message“ bezeichnet.

Wenn Sie eine Anfrage zum Senden einer einfachen Nachricht erstellen, denken Sie daran, dass Zeichen als 1 Byte (UTF-8) gezählt werden. Wenn Sie eine Nachricht mit Sonderzeichen wie Emojis oder einem Multibyte-Zeichensatz senden, zählt jedes Zeichen als 2–4 UTF‑8-Zeichen oder mehr.

Geben Sie Text in das Feld ein, um die Länge zu prüfen:

RCS-Clients können Linkvorschauen implementieren. Wenn eine reine Textnachricht von RCS for Business eine URL für eine Website mit Open Graph-Tags enthält, kann der Client eine Vorschau (Bild, Titel usw.) generieren und so für eine bessere Nutzererfahrung sorgen. Beispiel für eine einfache Nachricht mit URL-Vorschau

Beachten Sie, dass der Nutzer Linkvorschauen im RCS-Client möglicherweise deaktivieren kann.

Einmalpasswörter zur Nutzerbestätigung

Mit RCS for Business können Sie Einmalkennwörter (One-Time Passwords, OTPs) für die automatische Nutzerbestätigung mit der SMS Retriever API senden. Es gibt keine spezielle API zum Lesen von OTPs, die über RCS for Business eingehen.

Funktionsweise unter Android

Bei Android-Apps, die mit der SMS Retriever API registriert sind, wartet die API auf eine korrekt formatierte RCS for Business-Nachricht. Diese Nachricht muss sowohl das Einmalkennwort als auch einen eindeutigen Hash enthalten, der Ihre App identifiziert.

Wenn eine RCS for Business-Nachricht im richtigen Format empfangen wird, verarbeitet die SMS Retriever API sie genauso wie ein SMS-Einmalpasswort. Nachdem der Hash mit Ihrer App abgeglichen wurde, wird das Einmalkennwort extrahiert und zur automatischen Nutzerbestätigung an Ihre App weitergeleitet.

  • Beispiel für eine RCS for Business-SMS zur Nutzerbestätigung: Your code is <OTP><app hash>.
  • Beispiel: Your code is 123456 M8tue43FGT.

Weitere Informationen zur SMS Retriever API und zugehörigen APIs finden Sie in der Dokumentation zur SMS Retriever API. Weitere Informationen zur automatischen Nutzerbestätigung in Apps, die mit der SMS Retriever API registriert sind, finden Sie in diesem Ablaufdiagramm.

Funktionsweise unter iOS

Bei iOS werden die im System integrierten OTP-Funktionen automatisch erkannt und RCS for Business-OTPs für das automatische Ausfüllen vorgeschlagen, genau wie SMS-OTPs. Für das Lesen des Einmalpassworts durch die iOS-App ist keine spezielle API-Integration erforderlich.

Media- und PDF-Dateien

Wenn Sie eine Nachricht mit einem Bild, Video, Audio oder einer PDF-Datei senden, muss Ihr Kundenservicemitarbeiter eine öffentlich zugängliche URL für die Inhalte angeben oder die Datei direkt hochladen.

Die maximale Größe einer Datei, die gesendet werden kann, beträgt 100 MiB. Die Gesamtgröße aller Medien- und PDF-Anhänge in einer einzelnen Nachricht darf 100 MiB nicht überschreiten.

Spezifikationen für Thumbnails

Für Mediendateien können Sie auch ein Vorschaubild angeben, damit Nutzer sich den Inhalt ansehen können, bevor sie darauf klicken. Für Audiodateien wird das Standard-Audio-Widget als Platzhalter verwendet.

  • Die maximale Dateigröße einer Miniaturansicht beträgt 100 KB. Für eine optimale Nutzererfahrung empfehlen wir, dass die Größe 50 KB oder weniger beträgt.
  • Das Seitenverhältnis der Miniaturansicht sollte dem der Originaldatei entsprechen.

Caching und URL-Verwaltung

Die RCS for Business-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 werden Dateien aus dem Cache von RCS for Business entfernt.

Wenn Sie Dateien über eine URL angeben, empfiehlt es sich, contentMessage.forceRefresh auf false festzulegen. Wenn Sie contentMessage.forceRefresh auf true festlegen, erzwingen Sie, dass RCS for Business neue Inhalte von der angegebenen URL abruft, auch wenn die URL-Inhalte im Cache gespeichert sind. Dadurch verlängert sich die Zustellzeit von Nachrichten für Nutzer.

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-Beispielagenten.

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-Beispielagenten.

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-Beispielagenten.

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-Beispielagenten.

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 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

RCS for Business unterstützt die folgenden Medientypen. Für Miniaturansichten werden nur die Formate image/jpeg, image/jpg, image/gif und image/png unterstützt.

Medientyp Dokumenttyp Erweiterung Mit Rich Cards arbeiten
application/ogg OGG-Audio OGX Nein
application/pdf PDF PDF Ja (nur für Google Messages in Indien)
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

Vorschläge

Ihr Agent sendet Vorschläge (vorgeschlagene Antworten und Aktionen) in Vorschlagschip-Listen (maximal 11 Vorschläge) oder in Rich Cards (maximal 4 Vorschläge).

Jeder Vorschlag darf maximal 25 Zeichen lang sein.

Vorgeschlagene Antworten

Vorgeschlagene Antworten führen Nutzer durch Unterhaltungen, indem sie Antworten liefern, auf die Ihr Agent reagieren kann.

Wenn ein Nutzer auf eine vorgeschlagene Antwort tippt, erhält Ihr Agent ein Ereignis mit dem Text der Antwort und den Postback-Daten. Die Nutzlast darf maximal 2.048 Zeichen lang sein.

Beispiel

Mit dem folgenden Code wird Text 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-Beispielagenten.

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-Beispielagenten.

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-Beispielagenten.

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-Beispielagenten.

Vorgeschlagene Aktionen

Vorgeschlagene Aktionen führen Nutzer durch Unterhaltungen, indem sie die integrierten Funktionen ihrer Geräte nutzen. Ihr Agent 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.

Für jede vorgeschlagene Aktion können Sie optional eine Fallback-URL angeben (maximal 2.048 Zeichen). Diese URL wird in einem neuen Browserfenster geöffnet, wenn das Gerät des Nutzers die vorgeschlagene Aktion nicht unterstützt.

Wenn ein Nutzer auf eine vorgeschlagene Aktion tippt, erhält Ihr Agent ein Ereignis mit den Postback-Daten der Aktion.

Informationen zu Formatierungs- und Wertoptionen finden Sie unter SuggestedAction.

Nummer wählen

Mit der Aktion „Anrufen“ wird der Nutzer aufgefordert, eine von Ihrem Agent angegebene Telefonnummer zu wählen. Telefonnummern dürfen nur Ziffern (0-9), Pluszeichen (+), Sternchen (*) und Nummernzeichen (#) enthalten. Das internationale Format E.164 (z. B. +14155555555) wird unterstützt, ist aber nicht erforderlich. Das heißt, sowohl +14155555555 als auch 1011 sind gültige Einträge.

Beispiel

Mit dem folgenden Code wird eine Wählanrufaktion 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-Beispielagenten.

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-Beispielagenten.

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-Beispielagenten.

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-Beispielagenten.

Standort ansehen

Mit der Aktion „Standort anzeigen“ wird ein Standort in der Standardkarten-App des Nutzers angezeigt. Sie können den Standort entweder über Breiten- und Längengrad oder mit einer Anfrage basierend auf dem aktuellen Standort des Nutzers angeben. Sie können auch ein benutzerdefiniertes Label für die Markierung festlegen, die in der Karten-App angezeigt wird.

Beispiel

Mit dem 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);
});
Dieser Code ist ein Auszug aus einem RBM-Beispielagenten.

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-Beispielagenten.

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-Beispielagenten.

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-Beispielagenten.

Standort teilen

Mit der Aktion „Standort teilen“ kann der Nutzer einen Standort für Ihren Agenten freigeben. Der Nutzer kann entweder seinen aktuellen Standort oder einen manuell ausgewählten Standort aus der Google Maps App teilen.

Beispiel

Mit dem folgenden Code wird eine Aktion zum Teilen 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-Beispielagenten.

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-Beispielagenten.

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-Beispielagenten.

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-Beispielagenten.

URL öffnen

Mit der Aktion „URL öffnen“ können Sie Nutzer zu einer von Ihrem Agenten angegebenen Webseite weiterleiten. Standardmäßig wird die Webseite im Browser des Nutzers geöffnet. Sie können auch festlegen, dass die Webseite in einer Webview geöffnet wird. Weitere Informationen finden Sie unter URL mit Webview öffnen.

Nur in Google Messages:Wenn ein Nutzer eine Standard-App für die Webseite konfiguriert hat, wird diese App anstelle des Browsers oder der Webview geöffnet und auf der Vorschlagschaltfläche wird das Symbol der App angezeigt. Damit das App-Symbol in Google Messages angezeigt wird, müssen Sie die vollständige, direkte URL angeben. Wenn Sie eine gekürzte URL verwenden, wird stattdessen das Standardsymbol „URL öffnen“ angezeigt.

App-Symbol auf einer Vorschlagsschaltfläche.
App-Symbol auf einer Vorschlagschaltfläche
Beispiel

Mit dem 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);
});
Dieser Code ist ein Auszug aus einem RBM-Beispielagenten.

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-Beispielagenten.

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-Beispielagenten.

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-Beispielagenten.

URL mit Webview öffnen

Mit der Aktion „URL mit Webview öffnen“ wird die angegebene Webseite in der Messaging-App mit der Rendering-Engine Ihres Standardbrowsers geladen. So kann der Nutzer mit der Webseite interagieren, ohne die RCS for Business-Unterhaltung zu verlassen. Wenn das Gerät des Nutzers keine Webviews unterstützt, wird die Webseite stattdessen im Browser des Nutzers geöffnet. 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 füllt den gesamten Bildschirm aus.
  • Hälfte:Die Webseite nimmt die Hälfte des Bildschirms ein.
  • Hoch:Die Webseite nimmt drei Viertel des Bildschirms ein.
Beispiel

Mit dem folgenden Code wird die Aktion „Open URL with webview“ 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",
           "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

Mit der Aktion „Kalendertermin erstellen“ wird die Kalender-App des Nutzers geöffnet und ein neuer Termin mit den angegebenen Informationen erstellt.

Ein Kalendertermin muss einen Titel haben. Er darf maximal 100 Zeichen lang sein. Die Beschreibung des Kalenderereignisses ist optional und darf maximal 500 Zeichen lang sein.

Beispiel

Mit dem 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);
});
Dieser Code ist ein Auszug aus einem RBM-Beispielagenten.

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-Beispielagenten.

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-Beispielagenten.

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-Beispielagenten.

Liste mit Vorschlags-Chips

Ihr Agent sendet Vorschlagschiplisten mit Nachrichten, um Nutzer bei ihren nachfolgenden Aktionen zu unterstützen. Die Chipleiste wird nur angezeigt, wenn sich die zugehörige Nachricht unten in der Unterhaltung befindet. Alle nachfolgenden Nachrichten in der Unterhaltung (von einem Nutzer oder Ihrem Agent) überschreiben die Chipleiste.

Die Chips in der Liste sind Antwortvorschläge und Aktionsvorschläge.

Chiplisten enthalten maximal 11 Vorschlagschips und jedes Chip-Label darf maximal 25 Zeichen lang sein.

Informationen zu Formatierungs- und Wertoptionen finden Sie unter AgentContentMessage.

Interaktive Chat-Nachrichten

Interaktive Chat-Nachrichten kombinieren Medien, Text und interaktive Vorschläge in einer einzigen Nachricht. Sie eignen sich ideal, um zusammengehörige Informationen zu präsentieren, z. B. ein Produkt mit Bild, Name und Preis, und Nutzer mit einem klaren nächsten Schritt wie „Details ansehen“ zu leiten.

Eine interaktive Chat-Nachricht kann Folgendes enthalten:

Jedes dieser Felder ist optional, aber mindestens eines der Felder 1–3 muss in der Rich Card enthalten sein.

Mehrere Karten können zusammen in einem horizontal scrollbaren Karussell gesendet werden.

Die maximale Nutzlast für eine interaktive Chat-Nachricht beträgt 250 KB.

Ausführliche technische Informationen finden Sie in der Dokumentation zu Rich Cards.

Kartenhöhe

Interaktive Chat-Nachrichten werden vertikal erweitert, um Platz für den Inhalt zu schaffen. Sie haben eine Mindesthöhe von 112 dp und eine maximale Höhe von 344 dp. Wenn der Karteninhalt nicht groß genug ist, um die Mindestkartenhöhe zu erreichen, wird die Karte maximiert und die zusätzliche Höhe wird mit Leerraum gefüllt.

Media in Rich Cards müssen eine von drei Höhen haben:

  • Kurz: 112 DP
  • Mittel: 168 DP
  • Hoch: 264 DP

Wenn die Media bei der ausgewählten Höhe nicht in die Abmessungen auf der Karte passen, wird die Media-Vorschau durch Zoomen und Zuschneiden der Media erstellt.

Beispiel

Mit dem folgenden Code wird eine interaktive Chat-Nachricht 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-Beispielagenten.

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-Beispielagenten.

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-Beispielagenten.

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-Beispielagenten.

Karussells mit interaktiven Chat-Nachrichten

Karussells bestehen aus mehreren Rich Cards, sodass Nutzer Elemente vergleichen und einzeln darauf reagieren können.

Karussells können mindestens zwei und maximal zehn Rich Cards enthalten. Interaktive Chat-Nachrichten in Karussells müssen den allgemeinen Anforderungen an interaktive Chat-Nachrichten für Inhalt und Höhe entsprechen, wie in der Dokumentation zu interaktiven Chat-Nachrichten beschrieben. Weitere Informationen zum Karussell-Layout und zu den Spezifikationen finden Sie in der Karussell-Dokumentation.

Beispiel

Mit dem folgenden Code wird ein Karussell mit interaktiven Chat-Nachrichten 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/welcome-bot-sample-images/200.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/welcome-bot-sample-images/201.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/welcome-bot-sample-images/200.jpg';
let card2Image = 'https://storage.googleapis.com/welcome-bot-sample-images/201.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-Beispielagenten.

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/welcome-bot-sample-images/200.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/welcome-bot-sample-images/201.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-Beispielagenten.

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/welcome-bot-sample-images/200.jpg';
card_image_2 = 'https://storage.googleapis.com/welcome-bot-sample-images/201.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-Beispielagenten.

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/welcome-bot-sample-images/200.jpg";
string card2Image = "https://storage.googleapis.com/welcome-bot-sample-images/201.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-Beispielagenten.