Nachrichten senden

RCS for Business-Agenten kommunizieren mit Benutzern durch das Senden und Empfangen von Nachrichten. Um Nachrichten an Benutzer zu senden, sendet Ihr Agent Nachrichtenanfragen an die RCS Business Messaging API. Eine einzelne Anfrage kann Text , Rich Cards , Medien- und PDF-Dateien , Antwortvorschläge und Aktionsvorschläge enthalten.

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

  • Wenn Sie eine Nachricht an einen Benutzer senden, dessen Gerät RCS nicht unterstützt oder bei 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 Benutzer über die in Ihrer Infrastruktur definierten Ausweichmethoden zu erreichen.
  • Wenn Sie eine Nachricht an einen RCS-Benutzer in einem Netzwerk senden, in dem Ihr Agent noch nicht gestartet ist, oder in einem Netzwerk, in dem der RCS-Datenverkehr nicht aktiviert ist, gibt die RCS for Business-Plattform einen 404 NOT_FOUND-Fehler zurück.
  • Wenn Sie eine Nachricht mit Funktionen senden, die das Gerät des Benutzers nicht unterstützt, gibt die RCS for Business-Plattform den Fehler 400 INVALID_ARGUMENT zurück und stellt Ihre Nachricht nicht zu.

Im Rahmen Ihrer Multi-Channel-Messaging-Strategie empfiehlt es sich, Nachrichten, die nach einer angemessenen Zeit nicht zugestellt wurden, zu stornieren und über einen anderen Kanal zu senden. Um Nachrichten automatisch nach einem vordefinierten Zeitpunkt zu stornieren, legen Sie ein Ablaufdatum für die Nachricht fest.

Empfänger ist offline

Die RCS for Business-Plattform nimmt Nachrichten auch dann entgegen, wenn der Empfänger offline ist. Sie erhalten eine 200-OK-Antwort, und die Plattform speichert die Nachricht und versucht 30 Tage lang erneut zuzustellen. Sie müssen RCS for Business nicht bitten, die Nachricht erneut zu senden.

RCS for Business löscht alle nicht zugestellten Nachrichten 30 Tage nach deren Absendung.

Je nach Anwendungsfall Ihres Agenten kann es sinnvoll sein, eine nicht zugestellte Nachricht vor Ablauf der 30-Tage-Frist zu widerrufen . Durch den Widerruf wird verhindert, dass Offline-Nutzer beim erneuten Onlinegehen eine veraltete Nachricht erhalten. Es gibt mehrere Möglichkeiten, eine Nachricht zu widerrufen:

Legen Sie ein Ablaufdatum für Nachrichten fest.

Sind die Nachrichten Ihrer Mitarbeiter zeitkritisch? Beispielsweise sind Einmalpasswörter (OTPs) nur kurz gültig. Zeitlich begrenzte Angebote laufen ab. Und Terminerinnerungen sind nach dem Termin nicht mehr relevant. Um Nachrichten aktuell und relevant zu halten, legen Sie ein Ablaufdatum fest. So verhindern Sie, dass Offline-Nutzer veraltete Inhalte erhalten, wenn sie wieder online sind. Das Ablaufdatum ist außerdem ein guter Anlass, Ihre alternative Nachrichtenstrategie zu aktivieren, damit Nutzer die benötigten Informationen rechtzeitig erhalten.

Um ein Ablaufdatum für eine Nachricht festzulegen, geben Sie eines der folgenden Felder in der Agentennachricht an:

  • expireTime : die genaue Uhrzeit in UTC, zu der die Nachricht abläuft.
  • ttl (Time-to-Live): Die Zeitspanne, nach der die Nachricht abläuft.

Informationen zu Formatierungs- und Wertoptionen finden Sie unter AgentMessage .

Der Maximalwert für ttl und expireTime beträgt 15 Tage nach Nachrichtenübermittlung.

Obwohl es keinen Mindestwert für ttl und expireTime gibt, wird empfohlen, mindestens 10 Sekunden nach dem Absenden der Nachricht zu warten, um die Wahrscheinlichkeit, eine Benachrichtigung über Widerruf oder Zustellung zu erhalten, deutlich zu verringern.

Zeit, die für eine Nachricht zu leben ist (TTL).

Wenn Sie für eine RCS for Business-Nachricht eine Gültigkeitsdauer (TTL) festlegen, geben Sie an, wie lange die Nachricht als gültig und zustellbar gelten soll. Wird die Nachricht innerhalb dieser Gültigkeitsdauer nicht erfolgreich an das Gerät des Nutzers zugestellt, versucht die RCS for Business-Plattform automatisch, sie zu widerrufen.

Wenn Sie eine Nachrichtenwiderrufsanfrage stellen, weisen Sie die RCS for Business-Plattform an, die Zustellung dieser Nachricht einzustellen. Diese Aktion betrifft jedoch nur zukünftige Zustellungsversuche. Wurde die Nachricht bereits erfolgreich vom Gerät des Nutzers empfangen, wird sie verarbeitet, und die RCS for Business-Plattform kann sie nicht mehr vom Gerät des Nutzers entfernen.

Folgendes können Sie in Bezug auf Benachrichtigungen erwarten:

  • Nachricht innerhalb der Gültigkeitsdauer zugestellt: Wenn das Gerät des Nutzers online geht und die Nachricht empfängt, bevor die Gültigkeitsdauer abläuft, erhalten Sie eine DELIVERED . Es wird keine Widerrufsbenachrichtigung gesendet, da die Nachricht erfolgreich zugestellt wurde. Dies ist der häufigste und erwartete Fall.

  • Nachricht nicht vor Ablauf der Gültigkeitsdauer zugestellt: Läuft die Gültigkeitsdauer ab, 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 zu widerrufen. Sie erhalten die Benachrichtigung TTL_EXPIRATION_REVOKED , die bestätigt, 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 Sonderfällen

Unser System verarbeitet die Zustellung von RCS-for-Business-Nachrichten und die Gültigkeitsdauer (TTL) parallel. Daher kann es in seltenen Fällen vorkommen, dass die Benachrichtigungen zeitlich unerwartet erfolgen. Beispielsweise erhalten Sie möglicherweise sowohl eine Zustellungs- als auch eine Gültigkeitsdauerbenachrichtigung oder keine von beiden.

Hier sind unsere Empfehlungen für den Umgang mit RCS for Business-Nachrichtenbenachrichtigungen:

  • DELIVERED -Benachrichtigung: Wenn Sie eine DELIVERED -Benachrichtigung für eine Nachricht erhalten, bestätigt dies, dass die Nachricht den Empfänger erreicht hat. Sie können alle nachfolgenden TTL-Benachrichtigungen für diese Nachricht ignorieren.

  • TTL_EXPIRATION_REVOKED -Benachrichtigung: Wenn Sie eine TTL-Benachrichtigung mit dem Status TTL_EXPIRATION_REVOKED erhalten, bedeutet dies, dass das RCS for Business-System die Zustellung dieser Nachricht abbricht. Behandeln Sie diese Nachricht als nicht zugestellt und wenden Sie gegebenenfalls Ihre Ausweichstrategie an.

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

    • Bei kritischen Nachrichten, wie z. B. Einmalpasswörtern (OTPs), aktivieren Sie Ihre Ausweichmethode.
    • Bei nicht kritischen Meldungen entscheiden Sie, ob der Fallback ausgelöst werden soll oder nicht.
  • Keine Benachrichtigungen: In seltenen Ausnahmefällen kann es vorkommen, dass das System keine TTL-Benachrichtigung sendet und der Client ebenfalls keine Zustellbenachrichtigung generiert. Dies ist ein äußerst seltener Fall.

Legen Sie den Nachrichtenverkehrstyp fest

Die RBM-API enthält das Feld messageTrafficType zur Kategorisierung von Nachrichten. Während die Anwendungsfälle der Agenten weiterhin deren Verhalten und die anzuwendenden Geschäftsregeln definieren, ermöglicht messageTrafficType eine detailliertere Kategorisierung des Nachrichteninhalts. Dadurch kann ein einzelner Agent mehrere Anwendungsfälle bearbeiten. Bestehende Anwendungsfälle oder Geschäftsregeln bleiben derzeit unberührt.

Dieses Feld ist optional, es wird jedoch empfohlen, es jetzt auszufüllen, damit Sie keine Fehlermeldung erhalten, wenn das Feld erforderlich wird.

Um den Nachrichtenverkehrstyp festzulegen, weisen Sie jeder Nachricht anhand ihres Inhalts den entsprechenden messageTrafficType zu. RCS for Business unterstützt die folgenden Verkehrstypen.

Verkehrsart Nachrichteninhalt Anwendungsfall Agent
AUTHENTICATION Für Authentifizierungsnachrichten. OTP
TRANSACTION Für Mitteilungen über bestehende Dienste oder Produkte eines Nutzers. Zum Beispiel: Bestätigungen, Zahlungsbelege oder Buchungsdetails. Transaktions- oder Mehrfachnutzung
PROMOTION Für Werbebotschaften wie Angebote, Rabatte, Ankündigungen oder andere Werbeinhalte. Werbe- oder Mehrzweckartikel
SERVICEREQUEST Für Meldungen über Dienste, die der Nutzer ausdrücklich angefordert hat. OTP, Transaktions-, Werbe- oder Mehrfachnutzung
ACKNOWLEDGEMENT Diese Nachrichten dienen der Bestätigung einer Nutzeraktion – insbesondere einer Abmeldeanfrage. Sie bestätigen, dass die Anfrage des Nutzers eingegangen ist und bearbeitet wird. OTP, Transaktions-, Werbe- oder Mehrfachnutzung

Wenn kein Verkehrstyp festgelegt ist, weist das System dem Agenten den Standardtyp für seinen Anwendungsfall zu.

Anwendungsfall Agent Standard-Verkehrstyp
OTP AUTHENTICATION
Transaktional TRANSACTION
Werbeaktion PROMOTION
Mehrzwecknutzung MESSAGE_TRAFFIC_TYPE_UNSPECIFIED

Mehrfach verwendbare Agenten haben keinen Standard-Datenverkehrstyp. Sie müssen den Datenverkehrstyp für jede Nachricht anhand ihres Inhalts explizit festlegen. Wenn Sie den Wert MESSAGE_TRAFFIC_TYPE_UNSPECIFIED nicht ersetzen, tritt ein Fehler auf.

Beschränkungen der Nachrichtengröße

Die maximale Größe der gesamten AgentMessage- Zeichenkette beträgt 250 KB. Der Textteil der Nachricht ist auf 3072 Zeichen begrenzt.

Um einen unerwartet hohen Datenverbrauch für die Nutzer zu vermeiden, ist die maximale Dateigröße für RCS for Business auf 100 MiB begrenzt. Die Gesamtgröße aller Medien- 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 Medien- und PDF-Dateien .

Text

Die einfachsten Nachrichten bestehen aus Text. Textnachrichten eignen sich am besten zur Informationsübermittlung ohne visuelle Elemente, komplexe Interaktion oder Reaktion.

Beispiel

Der folgende Code sendet eine Klartextnachricht. 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 .

Grundlegender Nachrichteninhalt – Umwandlung von SMS

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

Beim Verfassen einer Anfrage zum Senden einer einfachen Nachricht ist zu beachten, dass ein Zeichen als 1 Byte (UTF-8) gezählt wird. Wenn Sie eine Nachricht mit Sonderzeichen wie Emojis oder Mehrbyte-Zeichensätzen senden, zählt jedes Zeichen als 2–4 UTF-8-Zeichen oder mehr.

Geben Sie einen Text in das Feld ein, um dessen Länge zu überprüfen:

RCS-Clients können Link-Vorschauen implementieren. Enthält eine reine Textnachricht von RCS for Business eine URL zu einer Website mit OpenGraph-Tags , kann der Client eine Vorschau (Bild, Titel usw.) generieren und so ein ansprechenderes Nutzererlebnis bieten. Ein Beispiel für eine einfache Nachricht mit URL-Vorschau finden Sie hier.

Beachten Sie, dass der RCS-Client es dem Benutzer möglicherweise ermöglicht, Link-Vorschauen zu deaktivieren.

Einmalpasswörter zur Benutzerverifizierung

Mit RCS for Business können Sie Einmalpasswörter (OTPs) zur automatischen Benutzerverifizierung mithilfe der SMS Retriever API versenden. Es gibt keine separate API zum Auslesen von OTPs, die über RCS for Business eingehen.

So funktioniert es für Android

Für Android-Apps, die sich bei der SMS Retriever API registriert haben, wartet die API auf korrekt formatierte RCS for Business-Nachrichten. Diese Nachrichten müssen sowohl das OTP als auch einen eindeutigen Hash enthalten, der Ihre App identifiziert.

Wenn eine RCS for Business-Nachricht im korrekten Format empfangen wird, verarbeitet die SMS Retriever API sie wie ein SMS-OTP. Nachdem der Hashwert mit Ihrer App abgeglichen wurde, wird das OTP extrahiert und zur automatischen Benutzerverifizierung an Ihre App weitergeleitet.

  • Beispiel einer SMS von RCS for Business zur Benutzerverifizierung: Your code is <OTP><app hash>.
  • Beispiel: Your code is 123456 M8tue43FGT.

Weitere Informationen zum SMS Retriever und den zugehörigen APIs finden Sie in der SMS Retriever-Dokumentation . Details zur automatischen Benutzerverifizierung in Apps, die bei der SMS Retriever API registriert sind, finden Sie in diesem Ablaufdiagramm .

So funktioniert es für iOS

Unter iOS erkennt die integrierte OTP-Funktion des Systems automatisch RCS for Business-OTPs und schlägt sie zur automatischen Ausfüllung vor, genau wie SMS-OTPs. Für die iOS-App ist keine spezielle API-Integration erforderlich, um das OTP zu lesen.

Medien- und PDF-Dateien

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

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

Medienkomprimierung und Transkodierung

Die RCS for Business-Plattform transkodiert und komprimiert automatisch Mediendateien (wie Bilder und Videos), bevor sie versendet werden, um sicherzustellen, dass sie schnell geladen werden und auf verschiedenen Netzwerken und Geräten einwandfrei funktionieren.

Die Komprimierung basiert auf der Qualität des Eingabemediums und nicht strikt auf Dateigrößenbeschränkungen. Das bedeutet, dass eine Datei auch dann komprimiert werden kann, wenn ihre Größe deutlich unter dem Grenzwert von 100 MiB liegt. Da sich Transkodierungsstandards ständig ändern, gibt es keine feste Dateigrößenbeschränkung, die festlegt, wann die Transkodierung umgangen wird. Experimentieren Sie mit verschiedenen Medienformaten, Abmessungen und Komprimierungsraten, um die optimale Balance für Ihre Daten zu finden.

Miniaturansicht-Spezifikationen

Für Mediendateien können Sie auch ein Vorschaubild festlegen, damit Nutzer den Inhalt vor dem Anklicken in der Vorschau ansehen können. Für Audiodateien wird das Standard-Audio-Widget als Platzhalter verwendet.

  • Die maximale Dateigröße eines Vorschaubildes beträgt 100 kB. Für eine optimale Benutzererfahrung empfehlen wir eine Größe von 50 kB oder weniger.
  • Das Seitenverhältnis des Vorschaubildes sollte dem Seitenverhältnis der Originaldatei entsprechen.

Caching und URL-Verwaltung

Die RCS for Business-Plattform speichert Dateien 60 Tage lang im Cache. Die API gibt eine Datei-ID zurück, die Ihr Agent in Nachrichten an Benutzer einfügen kann. Nach 60 Tagen werden die Dateien von RCS for Business aus dem Cache entfernt.

Beim Angeben von Dateien per URL empfiehlt es sich, contentMessage.forceRefresh auf false zu setzen. Die Einstellung contentMessage.forceRefresh auf true zwingt RCS for Business dazu, neue Inhalte von der angegebenen URL abzurufen, selbst wenn die Inhalte der URL zwischengespeichert sind. Dies verlängert die Zustellungszeiten für Benutzer.

Beispiel für eine Datei-URL

Der folgende Code sendet ein Bild. 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 vor dem Versenden in einer Nachricht mit files.create hochladen.

Beispiel für einen Datei-Upload

Der folgende Code lädt eine Videodatei und eine Miniaturansicht hoch und sendet anschließend beide Dateien in einer Nachricht. 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 Verlängerung Funktioniert mit hochwertigen Karten
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
Bild/GIF GIF .gif Ja
Bild/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 Ihnen Vorschläge (Antwortvorschläge und Handlungsvorschläge) in Form von Vorschlags-Chiplisten oder Rich Cards .

Antwortvorschläge

Vorgeschlagene Antworten leiten die Nutzer durch die Konversationen, indem sie Antworten bereitstellen, auf die Ihr Agent reagieren kann.

Wenn ein Nutzer auf eine vorgeschlagene Antwort tippt, empfängt Ihr Agent ein Ereignis, das den Antworttext und die Postback-Daten enthält . Die Nutzdaten dürfen maximal 2048 Zeichen lang sein.

Beispiel

Der folgende Code sendet eine SMS mit zwei Antwortvorschlägen. 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 .

Empfohlene Maßnahmen

Vorgeschlagene Aktionen leiten Nutzer durch Gespräche, indem sie die integrierten Funktionen ihrer Geräte nutzen. Ihr Agent kann Nutzern vorschlagen, eine Nummer zu wählen, einen Standort auf einer Karte zu öffnen, einen Standort zu teilen, eine URL zu öffnen oder einen Kalendereintrag zu erstellen.

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

Wenn ein Benutzer auf eine vorgeschlagene Aktion tippt, empfängt Ihr Agent ein Ereignis, das die Postback-Daten der Aktion enthält .

Informationen zu Formatierungs- und Wertoptionen finden Sie unter SuggestedAction .

Vorschlagsanzeige

Es gibt zwei Möglichkeiten, Vorschläge anzuzeigen:

  • Persistent : Vorgeschlagene Aktionen oder Antworten, die in der Sprechblase angezeigt werden und während der gesamten Konversation unverändert bleiben.
  • Vorübergehende Vorschläge : Vorschläge, die außerhalb der Sprechblase angezeigt werden und verschwinden, sobald die Konversation fortgesetzt wird.

Unterstützte Nachrichtenformate

  • Konsequente Vorschläge: Arbeiten Sie mit eigenständigen Textnachrichten und Rich Cards.
  • Vorübergehende Vorschläge: Arbeiten Sie mit eigenständigen Textnachrichten, Mediennachrichten und Rich Cards.

Vorschläge kombinieren

Sie können dauerhafte und temporäre Vorschläge in derselben Nachricht oder Rich-Card mischen.

  • Textnachrichten: Vorschläge sind standardmäßig temporär. Damit sie dauerhaft angezeigt werden, müssen Sie sie als persistent konfigurieren.
  • Rich Cards: Diese unterstützen standardmäßig bis zu vier dauerhafte Vorschläge. Sie können dann temporäre Vorschläge als „Chipliste“ unterhalb der Karte hinzufügen.

Vorschlagsgrenzen

Eine einzelne SMS unterstützt maximal 11 Vorschläge. Alle hinzugefügten permanenten Vorschläge zählen zu diesem Limit. Wenn Sie beispielsweise 4 permanente Vorschläge einfügen, können Sie bis zu 7 temporäre Vorschläge hinzufügen.

Vorschlagstyp Limit Wo sie erscheinen
Hartnäckig Bis zu 4 Innerhalb der Nachrichtenblase
Vorübergehend Bis zu 11 Außerhalb der Blase (als Chips)

Zeichenbegrenzung

Jeder Vorschlag darf maximal 25 Zeichen umfassen.

URL-Transparenz in vorgeschlagenen Aktionen

Um das Vertrauen der Nutzer zu stärken, wird die zugrundeliegende URL als zweite Textzeile im Vorschlagsbutton für die Aktion „URL öffnen“ angezeigt. Dieses einheitliche Verhalten gilt für einzelne Textnachrichten, Rich Cards und Karussells.

Unterstützte Kunden für anhaltende Vorschläge

  • Unterstützt: Google Messages (Version 20260225.00 oder höher).
  • Nicht unterstützt: Google Messages-Versionen vor 20260225.00 , iOS und Samsung Messages.

Wählen Sie eine Nummer

Die Wählfunktion leitet den Benutzer an, eine vom Agenten angegebene Telefonnummer zu wählen. Telefonnummern dürfen nur Ziffern ( 0-9 ), Pluszeichen ( + ), Sternchen ( * ) und Rautezeichen ( # ) enthalten. Das internationale E.164-Format (z. B. +14155555555 ) wird unterstützt, ist aber nicht erforderlich. Sowohl +14155555555 als auch 1011 sind gültige Eingaben.

Beispiel

Der folgende Code sendet eine Wählaktion. 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 anzeigen

Die Aktion „Standort anzeigen“ zeigt einen Standort in der Standard-Karten-App des Benutzers an. Sie können den Standort entweder anhand von Längen- und Breitengraden oder mithilfe einer Abfrage basierend auf dem aktuellen Standort des Benutzers festlegen. Außerdem können Sie eine benutzerdefinierte Bezeichnung für die in der Karten-App angezeigte Markierung festlegen.

Beispiel

Der folgende Code sendet eine ViewLocationAction-Aktion. 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

Die Funktion „Standort teilen“ ermöglicht es dem Nutzer, seinen Standort mit Ihrem Agenten zu teilen. Der Nutzer kann entweder seinen aktuellen Standort oder einen manuell in der Karten-App ausgewählten Standort teilen.

Beispiel

Der folgende Code sendet eine Standortfreigabeaktion. 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 .

Öffnen Sie eine URL

Mit der Aktion „URL öffnen“ können Sie Benutzer zu einer von Ihrem Agenten festgelegten Webseite weiterleiten. Standardmäßig wird die Webseite im Browser des Benutzers geöffnet. Alternativ können Sie festlegen, dass die Webseite in einer Webansicht geöffnet wird. Weitere Informationen finden Sie unter „URL mit Webansicht öffnen“ .

Nur in Google Messages

Anzeige der zugrundeliegenden URL : Um die Transparenz von A2P-Nachrichten zu verbessern, zeigt Google Messages die zugrundeliegende URL-Adresse in den Aktionsvorschlägen unter „URL öffnen“ an. Diese Änderung betrifft Aktionsvorschläge in Standard- Rich-Cards und Rich-Card-Karussells .

Eine Rich-Card mit dem Hinweis „Website ansehen“ und der darunter angezeigten URL.
Sichtbare zugrunde liegende URL

Anzeige des App-Symbols für Weblinks : Wenn für die Webseite eine Standard-App konfiguriert ist, wird diese anstelle des Browsers oder der Webansicht geöffnet, und die Schaltfläche „Vorschlag“ zeigt das App-Symbol an. Damit das App-Symbol in Google Messages angezeigt wird, muss die vollständige, direkte URL angegeben werden. Bei Verwendung einer Kurz-URL wird stattdessen das Standard-Symbol „URL öffnen“ angezeigt.

App-Symbol in einer Vorschlagsschaltfläche.
App-Symbol in einer Vorschlagsschaltfläche
Beispiel

Der folgende Code sendet eine OpenUrlAction-Aktion. 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 .

Öffnen Sie eine URL mit Webansicht

Die Aktion „URL mit Webansicht öffnen“ lädt die angegebene Webseite innerhalb der Messaging-App mit der Rendering-Engine Ihres Standardbrowsers. Dadurch kann der Benutzer mit der Webseite interagieren, ohne die RCS for Business-Konversation zu verlassen. Falls das Gerät des Benutzers keine Webansichten unterstützt, wird die Webseite stattdessen im Browser des Benutzers geöffnet. Informationen zum Aktivieren von Webansichten finden Sie unter OpenURLApplication .

Webviews verfügen über drei Anzeigemodi. Informationen zu Formatierungs- und Wertoptionen finden Sie unter WebviewViewMode .

  • Vollbild: Die Webseite füllt den gesamten Bildschirm aus.
  • Hälfte: Die Webseite nimmt die Hälfte des Bildschirms ein.
  • Hochformat: Die Webseite nimmt drei Viertel des Bildschirms ein.
Beispiel

Der folgende Code sendet eine OpenURL-Aktion mit Webview-Funktion. 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;
    }

Erstellen Sie ein Kalenderereignis

Die Aktion „Kalenderereignis erstellen“ öffnet die Kalender-App des Benutzers und beginnt mit der Erstellung eines neuen Ereignisses mit den angegebenen Informationen.

Für den Kalendereintrag ist ein Titel erforderlich. Dieser darf maximal 100 Zeichen lang sein. Die Beschreibung des Kalendereintrags ist optional und darf maximal 500 Zeichen lang sein.

Beispiel

Der folgende Code sendet eine Aktion zum Erstellen eines Kalenderereignisses. 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 .

Vorschlagsliste für Chips

Ihr Agent sendet Vorschlags-Chiplisten mit Nachrichten, um die Nutzer bei ihren weiteren Aktionen zu unterstützen. Die Chipliste wird nur angezeigt, wenn die zugehörige Nachricht am Ende des Gesprächs steht. Alle nachfolgenden Nachrichten im Gespräch (egal ob vom Nutzer oder Ihrem Agenten) überschreiben die Chipliste.

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

Chiplisten enthalten maximal 11 Vorschlagschips, und jede Chipbezeichnung darf maximal 25 Zeichen enthalten.

Informationen zu Formatierungs- und Wertoptionen finden Sie unter AgentContentMessage .

Reichhaltige Karten

Rich Cards kombinieren Medien, Text und interaktive Vorschläge zu einer einzigen Nachricht. Sie eignen sich ideal, um verwandte Informationen darzustellen (z. B. ein Produkt mit Bild, Name und Preis) und Nutzer mit einem klaren nächsten Schritt wie dem Vorschlag „Details ansehen“ zu leiten.

Eine reichhaltige Karte 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 scrollenden Karussell versendet werden.

Beachten Sie, dass die Gesamtnutzlast einer Rich-Karte 250 KB beträgt.

Die vollständigen technischen Details finden Sie in der Dokumentation zu den Rich-Karten .

Kartenhöhe

Rich-Karten dehnen sich vertikal aus, um ihren Inhalt aufzunehmen. Ihre Mindesthöhe beträgt 112 DP und ihre maximale Höhe 344 DP. Reicht der Karteninhalt nicht aus, um die Mindesthöhe vollständig auszufüllen, wird die Karte gedehnt und der fehlende Platz mit Leerraum aufgefüllt.

Medien in Rich Cards müssen einer von drei Höhen entsprechen:

  • Kurz: 112 DP
  • Medium: 168 DP
  • Größe: 264 DP

Wenn die Medieninhalte aufgrund der gewählten Höhe nicht in die Karte passen, wird die Medienvorschau durch Zoomen und Zuschneiden der Medieninhalte ausgewählt.

Beispiel

Der folgende Code sendet eine RichCard mit Bild und Antwortvorschlägen. 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 .

Reichhaltige Kartenkarussells

Karussells verknüpfen mehrere informative Karten miteinander, sodass Benutzer Artikel vergleichen und auf jede einzelne reagieren können.

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

Beispiel

Der folgende Code sendet ein Rich-Card-Karussell. 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 .