Mengirim pesan

Agen RBM berkomunikasi dengan pengguna dengan mengirim dan menerima pesan. Untuk mengirim pesan kepada pengguna, agen Anda mengirimkan permintaan pesan ke RCS Business Messaging API. Satu permintaan dapat mencakup teks, kartu lengkap, file media dan PDF, serta balasan yang disarankan dan tindakan yang disarankan.

Platform RBM akan menampilkan error dalam situasi tertentu untuk membantu Anda mengelola pengiriman pesan:

  • Jika Anda mengirim pesan ke pengguna yang perangkatnya tidak mendukung RCS atau tidak mengaktifkan RCS, platform RBM akan menampilkan error 404 NOT_FOUND. Dalam hal ini, Anda dapat mencoba menjangkau pengguna melalui metode penggantian yang ditentukan di infrastruktur Anda.
  • Jika Anda mengirim pesan ke pengguna RCS di jaringan tempat agen Anda belum diluncurkan, atau di jaringan yang belum mengaktifkan traffic RCS, platform RBM akan menampilkan error 404 NOT_FOUND.
  • Jika Anda mengirim pesan dengan fitur yang tidak didukung perangkat pengguna, platform RBM akan menampilkan error 400 INVALID_ARGUMENT dan tidak mengirimkan pesan Anda.

Sebagai bagian dari strategi pesan multisaluran, sebaiknya cabut pesan yang tidak terkirim setelah waktu yang wajar dan kirimkan melalui saluran yang berbeda. Untuk mencabut pesan secara otomatis pada waktu yang telah ditentukan, tetapkan masa berlaku pesan.

Penerima sedang offline

Platform RBM masih menerima pesan untuk dikirim jika penerima sedang offline. Anda akan menerima respons 200 OK, dan platform RBM akan menyimpan pesan dan mencoba mengirim ulang selama 30 hari. Anda tidak perlu meminta RBM untuk mengirim pesan lagi.

RBM akan menghapus pesan yang tidak terkirim 30 hari setelah pesan dikirim.

Bergantung pada kasus penggunaan agen, Anda mungkin ingin membatalkan pesan yang tidak terkirim sebelum waktu tunggu 30 hari ini. Pencabutan dapat mencegah pengguna offline menerima pesan yang sudah tidak berlaku saat mereka kembali online. Ada beberapa cara untuk mencabut pesan:

Menetapkan masa berlaku pesan

Apakah pesan agen Anda mendesak? Misalnya, OTP hanya valid selama periode singkat. Penawaran berbatas waktu akan berakhir. Selain itu, pengingat janji temu tidak relevan setelah tanggal janji temu. Untuk membantu memastikan pesan yang tepat waktu dan relevan, tetapkan masa berlaku pesan. Hal ini dapat mencegah pengguna offline menerima konten yang sudah tidak berlaku saat mereka kembali online. Masa berlaku juga merupakan petunjuk yang baik untuk memanggil strategi pesan penggantian Anda sehingga pengguna mendapatkan info yang mereka perlukan tepat waktu.

Untuk menetapkan masa berlaku pesan, tentukan salah satu kolom berikut dalam pesan agen:

  • expireTime: waktu persis dalam UTC saat pesan berakhir masa berlakunya.
  • ttl(time to live): jumlah waktu sebelum pesan berakhir masa berlakunya.

Untuk opsi format dan nilai, lihat AgentMessage.

Setelah masa berlaku pesan berakhir, platform RBM akan berhenti mencoba mengirimkan pesan, dan pesan akan otomatis dicabut. Namun, hal ini dapat gagal dalam beberapa kasus. Misalnya, API dapat memicu pencabutan saat platform RBM sedang dalam proses mengirimkan pesan. Untuk mengonfirmasi apakah pesan yang telah berakhir masa berlakunya berhasil dicabut atau tidak, RBM akan mengirimkan peristiwa notifikasi ke webhook Anda.

Nilai maksimum untuk ttl dan expireTime adalah 15 hari setelah pengiriman pesan.

Menetapkan jenis traffic pesan

RBM API menyertakan kolom messageTrafficType untuk mengategorikan pesan. Meskipun kasus penggunaan agen masih menentukan perilaku agen dan aturan bisnis mana yang berlaku, messageTrafficType memungkinkan kategorisasi konten pesan yang lebih mendetail. Pada akhirnya, hal ini akan memungkinkan satu agen menangani beberapa kasus penggunaan. Saat ini, tidak ada dampak terhadap kasus penggunaan agen atau aturan bisnis yang ada.

Saat ini, kolom ini bersifat opsional, tetapi sebaiknya tetap tetapkan sekarang agar Anda tidak menerima error saat kolom ini menjadi wajib.

Untuk menetapkan jenis traffic pesan, tetapkan messageTrafficType yang sesuai untuk setiap pesan berdasarkan kontennya. RBM mendukung jenis traffic berikut.

Jenis traffic Isi pesan Kasus penggunaan agen
AUTHENTICATION Untuk pesan autentikasi. OTP
TRANSACTION Untuk pesan tentang layanan atau produk pengguna yang sudah ada. Misalnya: konfirmasi, tanda terima pembayaran, atau detail pemesanan. Transaksional atau Multiguna
PROMOTION Untuk pesan promosi seperti penawaran, diskon, pengumuman, atau konten promosi lainnya. Promosi atau Multiguna
SERVICEREQUEST Untuk pesan tentang layanan yang telah diminta secara eksplisit oleh pengguna. OTP, Transaksi, Promosi, atau Multi-penggunaan
ACKNOWLEDGEMENT Untuk pesan yang digunakan untuk mengonfirmasi tindakan pengguna, khususnya permintaan berhenti berlangganan. Hal ini mengonfirmasi bahwa permintaan pengguna telah diterima dan sedang diproses. OTP, Transaksi, Promosi, atau Multi-penggunaan

Jika tidak ada jenis traffic yang ditetapkan, sistem akan menetapkan jenis default untuk kasus penggunaan agen.

Kasus penggunaan agen Jenis traffic default
OTP AUTHENTICATION
Transaksi TRANSACTION
Promosi PROMOTION
Multi-penggunaan MESSAGE_TRAFFIC_TYPE_UNSPECIFIED

Agen multi-penggunaan tidak memiliki jenis traffic default. Anda harus menetapkan jenis traffic secara eksplisit untuk setiap pesan berdasarkan kontennya. Jika Anda tidak mengganti nilai MESSAGE_TRAFFIC_TYPE_UNSPECIFIED, error akan terjadi.

Batas ukuran pesan

Ukuran maksimum seluruh AgentMessage yang di-string adalah 250 KB. Bagian teks pesan memiliki batasnya sendiri, yaitu 3.072 karakter.

Ukuran maksimum file yang dapat dikirim melalui RBM adalah 100 MB. Lihat File media dan PDF untuk mengetahui informasi selengkapnya.

Teks

Pesan paling sederhana dibuat dari teks. Pesan teks paling cocok untuk menyampaikan informasi tanpa memerlukan visual, interaksi yang rumit, atau respons.

Contoh

Kode berikut mengirimkan pesan teks biasa. Untuk opsi pemformatan dan nilai, lihat 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);
});
Kode ini adalah kutipan dari agen contoh RBM.

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();
}
Kode ini adalah kutipan dari agen contoh RBM.

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')
Kode ini adalah kutipan dari agen contoh RBM.

C#

using RCSBusinessMessaging;


// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation,
                                             projectId);

rbmApiHelper.SendTextMessage(
    "Hello, world!",
    "+12223334444",
);
Kode ini adalah kutipan dari agen contoh RBM.

Konten Pesan Dasar - konversi SMS

Operator telah memperkenalkan model penagihan untuk mendukung pemindahan pesan SMS ke RBM. Pesan RBM yang berisi hingga 160 karakter UTF-8 disebut Pesan Dasar.

Klien RCS dapat menerapkan pratinjau link. Jika pesan RBM hanya teks menyertakan URL untuk situs dengan tag openGraph, maka gambar pratinjau dapat ditampilkan sehingga memberikan kesan konten yang lebih kaya.

Perhatikan bahwa klien RCS dapat mengizinkan pengguna menonaktifkan pratinjau link.

Sandi sekali pakai untuk verifikasi pengguna

Anda dapat menggunakan RBM untuk mengirim sandi sekali pakai (OTP) untuk verifikasi pengguna otomatis dengan SMS Retriever API. Tidak ada API khusus untuk membaca OTP yang masuk melalui RBM.

Cara kerjanya untuk Android

Untuk aplikasi Android yang telah terdaftar dengan SMS Retriever API, API akan memproses pesan RBM yang diformat dengan benar. Pesan ini harus berisi OTP dan hash unik yang mengidentifikasi aplikasi Anda.

Saat pesan RBM diterima dengan format yang benar, SMS Retriever API akan memprosesnya seperti OTP SMS. Setelah hash dicocokkan dengan aplikasi Anda, OTP diekstrak dan diteruskan ke aplikasi Anda untuk verifikasi pengguna otomatis.

  • Contoh pesan teks RBM untuk verifikasi pengguna: Your code is <OTP> <app hash>.
  • Contoh: Your code is 123456 M8tue43FGT.

Untuk mempelajari SMS Retriever dan API terkait lebih lanjut, lihat dokumentasi SMS Retriever. Untuk mengetahui detail tentang verifikasi pengguna otomatis di aplikasi yang terdaftar dengan SMS Retriever API, lihat diagram alur ini.

Cara kerjanya untuk iOS

Untuk iOS, penanganan OTP bawaan sistem akan otomatis mendeteksi dan menyarankan OTP RBM untuk isi otomatis, seperti OTP SMS. Tidak diperlukan integrasi API khusus agar aplikasi iOS dapat membaca OTP.

File media dan PDF

Saat Anda mengirim pesan dengan file gambar, video, audio, atau PDF, agen Anda harus memberikan URL yang dapat diakses secara publik untuk konten tersebut atau langsung mengupload file. Untuk file media, Anda juga dapat menentukan gambar thumbnail yang memungkinkan pengguna melihat pratinjau konten sebelum mengkliknya. Untuk file audio, widget audio default digunakan sebagai placeholder.

Platform RBM meng-cache file selama 60 hari, dan API menampilkan ID file yang dapat disertakan agen Anda dalam pesan kepada pengguna. Setelah 60 hari, RBM akan menghapus file dari cache.

Saat menentukan file berdasarkan URL, praktik terbaiknya adalah menetapkan contentMessage.forceRefresh ke false. Menetapkan contentMessage.forceRefresh ke true akan memaksa RBM mengambil konten baru dari URL yang ditentukan, meskipun konten URL di-cache, yang akan meningkatkan waktu pengiriman pesan bagi pengguna.

Lihat praktik terbaik untuk rekomendasi dan batas ukuran file.

Contoh URL file

Kode berikut mengirimkan gambar. Untuk opsi format dan nilai, lihat 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);
});
Kode ini adalah kutipan dari agen contoh RBM.

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();
}
Kode ini adalah kutipan dari agen contoh RBM.

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')
Kode ini adalah kutipan dari agen contoh RBM.

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");
Kode ini adalah kutipan dari agen contoh RBM.

Atau, Anda dapat mengupload media sebelum mengirimnya dalam pesan dengan files.create.

Contoh upload file

Kode berikut mengupload file video dan file thumbnail, lalu mengirim kedua file tersebut dalam pesan. Untuk opsi format dan nilai, lihat files.create dan 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"
    }
  }
}'

Jenis media yang didukung

RBM mendukung jenis media berikut. Untuk thumbnail, hanya image/jpeg, image/jpg, image/gif, dan image/png yang didukung.

Jenis media Jenis dokumen Perluasan Berfungsi dengan kartu informasi
application/ogg Audio OGG .ogx Tidak
application/pdf PDF .pdf Tidak
audio/aac Audio AAC .aac Tidak
audio/mp3 Audio MP3 .mp3 Tidak
audio/mpeg Audio MPEG .mpeg Tidak
audio/mpg Audio MPG .mp3 Tidak
audio/mp4 Audio MP4 .mp4 Tidak
audio/mp4-latm Audio MP4-latm .mp4 Tidak
audio/3gpp Audio 3GPP .3gp Tidak
image/jpeg JPEG .jpeg, .jpg Ya
image/gif GIF .gif Ya
image/png PNG .png Ya
video/h263 Video H263 .h263 Ya
video/m4v Video M4V .m4v Ya
video/mp4 Video MP4 .mp4 Ya
video/mpeg4 Video MPEG-4 .mp4, .m4p Ya
video/mpeg Video MPEG .mpeg Ya
video/webm Video WEBM .webm Ya

Saran

Agen Anda mengirimkan saran (saran balasan dan saran tindakan) dalam daftar chip saran (maksimum 11 saran) atau dalam kartu lengkap (maksimum empat saran).

Setiap saran memiliki maksimal 25 karakter.

Balasan yang disarankan

Saran balasan memandu pengguna melalui percakapan dengan memberikan respons yang diketahui agen Anda cara meresponsnya.

Saat pengguna mengetuk balasan yang disarankan, agen Anda akan menerima peristiwa yang berisi teks balasan dan data postback. Payload memiliki maksimum 2.048 karakter.

Contoh

Kode berikut mengirim teks dengan dua balasan yang disarankan. Untuk opsi pemformatan dan nilai, lihat 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);
});
Kode ini adalah kutipan dari agen contoh RBM.

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();
}
Kode ini adalah kutipan dari agen contoh RBM.

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')
Kode ini adalah kutipan dari agen contoh RBM.

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
);
Kode ini adalah kutipan dari agen contoh RBM.

Tindakan yang disarankan

Tindakan yang disarankan memandu pengguna melalui percakapan dengan memanfaatkan fungsi bawaan perangkat mereka. Agen Anda dapat menyarankan pengguna untuk menghubungi nomor, membuka lokasi di peta, membagikan lokasi, membuka URL, atau membuat acara kalender.

Untuk setiap tindakan yang disarankan, Anda dapat memberikan URL penggantian secara opsional (maksimal 2.048 karakter). URL ini akan terbuka di jendela browser baru jika perangkat pengguna tidak mendukung tindakan yang disarankan.

Saat pengguna mengetuk tindakan yang disarankan, agen Anda akan menerima peristiwa yang berisi data postback tindakan.

Untuk opsi format dan nilai, lihat SuggestedAction.

Panggil nomor

Tindakan Telepon memandu pengguna untuk menghubungi nomor telepon yang ditentukan oleh agen Anda. Nomor telepon hanya dapat menyertakan angka (0-9), tanda plus (+), tanda bintang (*), dan tanda angka (#). Format internasional E.164 (misalnya, +14155555555) didukung, tetapi tidak wajib. Artinya, +14155555555 dan 1011 adalah entri yang valid.

Contoh

Kode berikut mengirimkan tindakan panggilan. Untuk opsi format dan nilai, lihat 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);
});
Kode ini adalah kutipan dari agen contoh RBM.

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();
}
Kode ini adalah kutipan dari agen contoh RBM.

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')
Kode ini adalah kutipan dari agen contoh RBM.

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
);
Kode ini adalah kutipan dari agen contoh RBM.

Melihat lokasi

Tindakan Lihat lokasi menampilkan lokasi di aplikasi peta default pengguna. Anda dapat menentukan lokasi berdasarkan lintang dan bujur atau dengan kueri berdasarkan lokasi pengguna saat ini. Anda juga dapat menetapkan label khusus untuk pin yang ditampilkan di aplikasi peta.

Contoh

Kode berikut mengirimkan tindakan lokasi tampilan. Untuk opsi pemformatan dan nilai, lihat 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);
});
Kode ini adalah kutipan dari agen contoh RBM.

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();
}
Kode ini adalah kutipan dari agen contoh RBM.

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')
Kode ini adalah kutipan dari agen contoh RBM.

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
);
Kode ini adalah kutipan dari agen contoh RBM.

Bagikan lokasi

Tindakan Bagikan Lokasi memungkinkan pengguna membagikan lokasi kepada agen Anda. Pengguna dapat membagikan lokasi saat ini atau lokasi yang dipilih secara manual dari aplikasi Maps.

Contoh

Kode berikut mengirimkan tindakan bagikan lokasi. Untuk opsi pemformatan dan nilai, lihat 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);
});
Kode ini adalah kutipan dari agen contoh RBM.

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();
}
Kode ini adalah kutipan dari agen contoh RBM.

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')
Kode ini adalah kutipan dari agen contoh RBM.

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
);
Kode ini adalah kutipan dari agen contoh RBM.

Membuka URL

Tindakan Buka URL memungkinkan Anda memandu pengguna ke halaman web yang ditentukan oleh agen Anda. Secara default, halaman web akan terbuka di browser pengguna. Jika pengguna memiliki aplikasi default yang dikonfigurasi untuk halaman web, aplikasi tersebut akan terbuka. Dalam hal ini, ikon pada tombol tindakan yang disarankan akan menjadi ikon aplikasi.

Tindakan Buka URL juga mendukung webview terintegrasi; lihat Buka URL dengan webview.

Contoh

Kode berikut mengirimkan tindakan buka URL. Untuk opsi format dan nilai, lihat 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);
});
Kode ini adalah kutipan dari agen contoh RBM.

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();
}
Kode ini adalah kutipan dari agen contoh RBM.

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')
Kode ini adalah kutipan dari agen contoh RBM.

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
);
Kode ini adalah kutipan dari agen contoh RBM.

Membuka URL dengan webview

Tindakan Buka URL dengan webview memuat halaman web yang ditentukan di dalam aplikasi pesan dengan mesin rendering browser default Anda. Hal ini memungkinkan pengguna berinteraksi dengan halaman web tanpa keluar dari percakapan RBM. Jika perangkat pengguna tidak mendukung webview, halaman web akan terbuka di browser pengguna. Untuk mengaktifkan webview, lihat OpenURLApplication.

Webview memiliki tiga mode tampilan. Untuk opsi format dan nilai, lihat WebviewViewMode.

  • Penuh: Halaman web mengisi layar penuh
  • Setengah: Halaman web menggunakan setengah layar
  • Tinggi: Halaman web menggunakan tiga perempat layar
Contoh

Kode berikut mengirimkan URL Buka dengan tindakan webview. Untuk opsi pemformatan dan nilai, lihat 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;
    }

Membuat acara kalender

Tindakan Buat acara kalender akan membuka aplikasi kalender pengguna dan mulai membuat acara baru dengan informasi yang ditentukan.

Judul acara kalender wajib diisi. Kolom ini memiliki maksimum 100 karakter. Deskripsi peristiwa kalender bersifat opsional dan memiliki maksimum 500 karakter.

Contoh

Kode berikut mengirimkan tindakan membuat acara kalender. Untuk opsi pemformatan dan nilai, lihat 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);
});
Kode ini adalah kutipan dari agen contoh RBM.

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();
}
Kode ini adalah kutipan dari agen contoh RBM.

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')
Kode ini adalah kutipan dari agen contoh RBM.

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
);
Kode ini adalah kutipan dari agen contoh RBM.

Menulis pesan

Tindakan Compose akan membuka aplikasi pesan pengguna sehingga mereka dapat mengirim pesan ke nomor telepon yang telah ditentukan sebelumnya, seperti nomor Dukungan Pelanggan.

Ada tiga jenis tindakan Compose. Untuk contoh visual, lihat Menulis pesan teks, audio, atau video.

  • Menulis pesan teks: Membuka aplikasi pesan dengan teks yang telah diisi sebelumnya untuk dikirim pengguna.
  • Menulis pesan audio: Membuka aplikasi pesan dan meluncurkan mikrofon agar pengguna dapat merekam audio.
  • Menulis pesan video: Membuka aplikasi pesan dan meluncurkan kamera sehingga pengguna dapat merekam video.
Contoh

Kode berikut mengirimkan tindakan compose. Untuk opsi format dan nilai, lihat ComposeAction.

cURL

  curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \
  -H "Content-Type: application/json" \
  -H "User-Agent: curl/rcs-business-messaging" \
  -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \
-d '{
  "contentMessage": {
    "text": "Hello, world!",
    "suggestions": [
      {
        "action": {
          "text": "Compose a text message",
          "postbackData": "postback_data_123",
          "composeAction": {
            "composeTextMessage": {
              "phoneNumber": "+15556667777",
              "text": "Draft to go into the send message text field."
            }
          }
        }
      },{
        "action": {
          "text": "Compose an audio message",
          "postbackData": "postback_data_456",
          "composeAction": {
            "composeRecordingMessage": {
              "phoneNumber": "+15556667777",
              "type": "ACTION_TYPE_AUDIO"
            }
          }
        }
      },{
        "action": {
          "text": "Compose a video message",
          "postbackData": "postback_data_789",
          "composeAction": {
            "composeRecordingMessage": {
              "phoneNumber": "+15556667777",
              "type": "ACTION_TYPE_VIDEO"
            }
          }
        }
      }
    ]
  }
}'

Node.js

// Reference to RBM API helper
const rbmApiHelper = require('@google/rcsbusinessmessaging');

// Define a compose suggested action
let suggestions = [
   {
      action: {
         text: 'Compose a text message',
         postbackData: 'postback_data_123',
         'composeAction': {
            'composeTextMessage': {
               'phoneNumber': '+15556667777'
               'text': 'Draft to go into the send message text field.'
            }
         }
      }
   },{
      action: {
         text: 'Compose an audio message',
         postbackData: 'postback_data_456',
         'composeAction': {
            'composeRecordingMessage': {
               'phoneNumber': '+15556667777'
               'type': 'ACTION_TYPE_AUDIO'
            }
         }
      }
   },{
      action: {
         text: 'Compose a video message',
         postbackData: 'postback_data_789',
         'composeAction': {
            'composeRecordingMessage': {
               'phoneNumber': '+15556667777'
               'type': 'ACTION_TYPE_VIDEO'
            }
         }
      }
   }
];

let params = {
   messageText: 'Hello, world!',
   msisdn: '+12223334444',
   suggestions: suggestions,
};

// Send a simple message with a dial suggested action
rbmApiHelper.sendMessage(params, function(response) {
   console.log(response);
});

Java

import com.google.api.services.rcsbusinessmessaging.v1.model.ComposeAction;
import com.google.api.services.rcsbusinessmessaging.v1.model.ComposeRecordingMessage;
import com.google.api.services.rcsbusinessmessaging.v1.model.ComposeTextMessage;
import com.google.api.services.rcsbusinessmessaging.v1.model.SuggestedAction;
import com.google.api.services.rcsbusinessmessaging.v1.model.Suggestion;
import com.google.rbm.RbmApiHelper;


try {
   // Create an instance of the RBM API helper
   RbmApiHelper rbmApiHelper = new RbmApiHelper();

   // Create suggestions for chip list
   List<Suggestion> suggestions = new ArrayList<Suggestion>();

   // creating compose text suggested action
   Suggestion composeTextSuggestion =  getComposeTextAction()
   suggestions.add(composeTextSuggestion);

   // creating compose audio suggested action
   Suggestion composeAudioSuggestion =  getComposeAudioAction()
   suggestions.add(composeAudioSuggestion);


   // Send simple text message with the suggestion action
   rbmApiHelper.sendTextMessage(
      "Hello, world!",
      "+12223334444",
      suggestions
   );
} catch(Exception e) {
   e.printStackTrace();
}

 /**
   * Creates a compose text suggested action.
   * @return A suggestion object for a compose text action.
 */
 private Suggestion getComposeTextAction() {
        // creating a compose text suggested action
        ComposeTextMessage message = new ComposeTextMessage();
        message.setPhoneNumber("+12223334444");
        message.setText("Draft to go into the send message text field.");
        ComposeAction composeAction = new ComposeAction();
        composeAction.setComposeTextMessage(message);

        // creating a suggested action based on a compose text action
        SuggestedAction suggestedAction = new SuggestedAction();
        suggestedAction.setText("Send a text message");
        suggestedAction.setPostbackData("postback_data_123");
        suggestedAction.setComposeAction(composeAction);

        // attaching action to a suggestion
        Suggestion suggestion = new Suggestion();
        suggestion.setAction(suggestedAction);

        return suggestion;
    }

    /**
     * Creates a compose audio suggested action.
     * @return A suggestion object for a compose audio action.
    */
    private Suggestion getComposeAudioAction() {
        // creating a compose audio suggested action
        ComposeRecordingMessage message = new ComposeRecordingMessage();
        message.setPhoneNumber("+12223334444");
        message.setType("ACTION_TYPE_AUDIO");
        ComposeAction composeAction = new ComposeAction();
        composeAction.setComposeRecordingMessage(message);

        // creating a suggested action based on a compose text action
        SuggestedAction suggestedAction = new SuggestedAction();
        suggestedAction.setText("Send an audio message");
        suggestedAction.setPostbackData("postback_data_456");
        suggestedAction.setComposeAction(composeAction);

        // attaching action to a suggestion
        Suggestion suggestion = new Suggestion();
        suggestion.setAction(suggestedAction);

        return suggestion;
    }

Python

  # Reference to RBM Python client helper and messaging object structure
  from rcs_business_messaging import rbm_service
  from rcs_business_messaging import messages

  # Create a dial suggested action
  suggestions = [
      messages.ComposeTextMessageAction(
          'Send a text message',
          'postback_data_123',
          '+15556667777',
          '')
      messages.ComposeRecordingMessageAction(
          'Send an audio message',
          'postback_data_456',
          '+15556667777',
          'ACTION_TYPE_AUDIO')
  
  ]

  # Create text message to send to user
  text_msg = messages.TextMessage('Hello, world!')
  cluster = messages.MessageCluster().append_message(text_msg)

  # Append suggestions for the message to send to the user
  for suggestion in suggestions:
      cluster.append_suggestion_chip(suggestion)

  # Send a simple message with suggested action to the device
  cluster.send_to_msisdn('+12223334444')

C#

  using Google.Apis.RCSBusinessMessaging.v1.Data;
  using RCSBusinessMessaging;
  

  // Create an instance of the RBM API helper
  RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation,
                                                   projectId);

  // Create a compose text suggested action
  ComposeTextMessage composeTextMessage = new ComposeTextMessage{
      PhoneNumber = "+15556667777"
      Text = "Draft to go into the send message text field."
  };

  ComposeAction composeAction = new ComposeAction
  {
      ComposeTextMessage = composeTextMessage
  };

  // Creating a suggested action based on a compose action
  SuggestedAction suggestedAction = new SuggestedAction
  {
      Text = "Send a text message",
      PostbackData = "postback_data_123",
      ComposeAction = composeAction
  };

  // Attach action to a suggestion
  Suggestion suggestion = new Suggestion
  {
      Action = suggestedAction
  };

  List suggestions = new List
  {
      suggestion
  };

  rbmApiHelper.SendTextMessage(
      "Hello, world!",
      "+12223334444",
      suggestions
  );  

Daftar chip saran

Agen Anda mengirimkan daftar chip saran dengan pesan untuk memandu tindakan berikutnya dari pengguna. Daftar chip hanya ditampilkan jika pesan terkait berada di bagian bawah percakapan. Setiap pesan berikutnya dalam percakapan (dari pengguna atau agen Anda) akan menimpa daftar chip.

Chip dalam daftar adalah saran balasan dan saran tindakan.

Daftar chip berisi maksimal 11 chip saran, dan setiap label chip dapat berisi maksimal 25 karakter.

Untuk opsi format dan nilai, lihat AgentContentMessage.

Kartu informasi

Jika perlu mengirim sekumpulan informasi, media, atau saran terkait, Anda harus mengirim kartu informasi. Kartu informasi memungkinkan agen Anda mengirim beberapa unit informasi dalam satu pesan.

Kartu informasi dapat berisi item berikut:

  • Gambar atau video
  • Teks judul
  • Teks deskripsi
  • Saran balasan dan saran tindakan (maksimum 4)

Kartu informasi dapat berisi semua item yang tercantum, tetapi kartu harus berisi setidaknya gambar, video, atau judul agar valid. Kartu informasi dapat berisi maksimal empat saran tindakan dan saran balasan.

Agen Anda dapat mengirim beberapa kartu informasi secara bersamaan dalam carousel kartu informasi.

Ukuran maksimum payload kartu yang kaya adalah 250 KB. Lihat praktik terbaik untuk rekomendasi dan batas ukuran file media.

Anda dapat menemukan spesifikasi kartu informasi di Kartu informasi.

Tinggi kartu

Kartu diperluas secara vertikal agar sesuai dengan kontennya. Kartu informasi memiliki tinggi minimum 112 DP dan tinggi maksimum 344 DP. Jika konten kartu tidak cukup besar untuk mengisi tinggi kartu minimum, kartu akan diperluas dan mengisi tinggi tambahan dengan spasi kosong.

Media dalam kartu informasi harus sesuai dengan salah satu dari tiga tinggi berikut:

  • Pendek: 112 DP
  • Sedang: 168 DP
  • Tinggi: 264 DP

Jika media tidak sesuai dengan dimensi dalam kartu dengan tinggi yang dipilih, pratinjau media akan dipilih dengan memperbesar dan memangkas media.

Contoh

Kode berikut mengirim kartu informasi dengan gambar dan balasan yang disarankan. Untuk opsi format dan nilai, lihat 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);
});
Kode ini adalah kutipan dari agen contoh RBM.

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();
}
Kode ini adalah kutipan dari agen contoh RBM.

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')
Kode ini adalah kutipan dari agen contoh RBM.

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");
Kode ini adalah kutipan dari agen contoh RBM.

Carousel kartu informasi

Jika Anda perlu menampilkan beberapa opsi kepada pengguna untuk dipilih, gunakan carousel kartu informasi. Carousel menggabungkan beberapa kartu lengkap, sehingga pengguna dapat membandingkan item dan bereaksi terhadap setiap item.

Carousel dapat berisi minimal dua dan maksimum sepuluh kartu informasi. Kartu informasi dalam carousel harus sesuai dengan persyaratan kartu informasi umum untuk konten dan tinggi. Anda dapat menemukan spesifikasi carousel di Kartu informasi.

Ukuran maksimum payload carousel kartu lengkap adalah 250 KB. Lihat praktik terbaik untuk rekomendasi dan batas ukuran file media.

Sama seperti kartu lengkap, banyak faktor (seperti resolusi layar, kepadatan piksel, dan preferensi pengguna) yang memengaruhi tampilan kartu bagi pengguna akhir. Namun, dalam carousel, tinggi beberapa kartu pertama menentukan tinggi semua kartu dalam carousel, dan tinggi kartu memengaruhi judul, deskripsi, dan pemotongan saran.

Jika perangkat tidak dapat menampilkan semua elemen kartu karena batasan tampilan atau tinggi kartu, RBM akan memotong kartu hingga dapat ditampilkan di perangkat, menggunakan logika berikut:

  1. Kurangi deskripsi menjadi satu baris.
  2. Kurangi judul menjadi satu baris.
  3. Hapus saran yang tidak muat di kartu, mulai dari akhir daftar yang ditentukan.
  4. Hapus deskripsi.
  5. Hapus judul.

Agar tidak terpotong, buat judul dan deskripsi sesingkat mungkin. Untuk media tinggi, gunakan judul dan deskripsi atau satu saran. Untuk media sedang, gunakan maksimal dua saran. Untuk media singkat, gunakan maksimal tiga saran. Agar dapat menampung empat saran, jangan sertakan media dalam kartu.

Pastikan kartu memiliki ukuran dan panjang konten yang kurang lebih sama, dan jika perlu, muat carousel di awal dengan kartu yang lebih besar untuk menghindari pemotongan di kartu berikutnya.

Contoh

Kode berikut mengirimkan carousel kartu informasi. Untuk opsi format dan nilai, lihat RichCard.

cURL

curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/rcs-business-messaging" \
-H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \
-d '{
  "contentMessage": {
    "richCard": {
      "carouselCard": {
        "cardWidth": "MEDIUM",
        "cardContents": [
          {
            "title": "Card #1",
            "description": "The description for card #1",
            "suggestions": [
              {
                "reply": {
                  "text": "Card #1",
                  "postbackData": "card_1"
                }
              }
            ],
            "media": {
              "height": "MEDIUM",
              "contentInfo": {
                "fileUrl": "https://storage.googleapis.com/kitchen-sink-sample-images/cute-dog.jpg",
                "forceRefresh": false
              }
            }
          },
          {
            "title": "Card #2",
            "description": "The description for card #2",
            "suggestions": [
              {
                "reply": {
                  "text": "Card #2",
                  "postbackData": "card_2"
                }
              }
            ],
            "media": {
              "height": "MEDIUM",
              "contentInfo": {
                "fileUrl": "https://storage.googleapis.com/kitchen-sink-sample-images/elephant.jpg",
                "forceRefresh": false
              }
            }
          }
        ]
      }
    }
  }
}'

Node.js

// Reference to RBM API helper
const rbmApiHelper = require('@google/rcsbusinessmessaging');

// Images for the carousel cards
let card1Image = 'https://storage.googleapis.com/kitchen-sink-sample-images/cute-dog.jpg';
let card2Image = 'https://storage.googleapis.com/kitchen-sink-sample-images/elephant.jpg';

// Define the card contents for a carousel with two cards, each with one suggested reply
let cardContents = [
   {
      title: 'Card #1',
      description: 'The description for card #1',
      suggestions: [
         {
            reply: {
               text: 'Card #1',
               postbackData: 'card_1',
            }
         }
      ],
      media: {
         height: 'MEDIUM',
         contentInfo: {
            fileUrl: card1Image,
            forceRefresh: false,
         },
      },
   },
   {
      title: 'Card #2',
      description: 'The description for card #2',
      suggestions: [
         {
            reply: {
               text: 'Card #2',
               postbackData: 'card_2',
            }
         }
      ],
      media: {
         height: 'MEDIUM',
         contentInfo: {
            fileUrl: card2Image,
            forceRefresh: false,
         },
      },
   },
];

// Definition of carousel card
let params = {
   msisdn: '+12223334444',
   cardContents: cardContents,
};

// Send the device the carousel card defined above
rbmApiHelper.sendCarouselCard(params, function(response) {
   console.log(response);
});
Kode ini adalah kutipan dari agen contoh RBM.

Java

import com.google.api.services.rcsbusinessmessaging.v1.model.CardContent;
import com.google.api.services.rcsbusinessmessaging.v1.model.Suggestion;
import com.google.rbm.cards.CardOrientation;
import com.google.rbm.cards.CardWidth;
import com.google.rbm.cards.MediaHeight;
import com.google.rbm.RbmApiHelper;
import com.google.rbm.SuggestionHelper;


try {
            // Create an instance of the RBM API helper
            RbmApiHelper rbmApiHelper = new RbmApiHelper();

            List cardContents = new ArrayList();

            // Images for the carousel cards
            String card1Image = "https://storage.googleapis.com/kitchen-sink-sample-images/cute-dog.jpg";

            // Create suggestions for first carousel card
            List card1Suggestions = new ArrayList();
            card1Suggestions.add(
                new SuggestionHelper("Card #1", "card_1"));

            cardContents.add(
                new StandaloneCardHelper(
                    "Card #1",
                    "The description for card #1",
                    card1Image,
                    card1Suggestions)
                    .getCardContent(MediaHeight.SHORT)
            );

            // Images for the carousel cards
            String card2Image = "https://storage.googleapis.com/kitchen-sink-sample-images/elephant.jpg";

            // Create suggestions for second carousel card
            List card2Suggestions = new ArrayList();
            card2Suggestions.add(
                new SuggestionHelper("Card #2", "card_2"));

            cardContents.add(
                new StandaloneCardHelper(
                    "Card #2",
                    "The description for card #2",
                    card2Image,
                    card2Suggestions)
                    .getCardContent(MediaHeight.SHORT)
            );

            // Send the carousel to the user
            rbmApiHelper.sendCarouselCards(cardContents, CardWidth.MEDIUM, "+12223334444");
        } catch(Exception e) {
            e.printStackTrace();
        }
Kode ini adalah kutipan dari agen contoh RBM.

Python

# Reference to RBM Python client helper and messaging object structure
from rcs_business_messaging import rbm_service
from rcs_business_messaging import messages

# Images for the carousel cards
card_image_1 = 'https://storage.googleapis.com/kitchen-sink-sample-images/cute-dog.jpg';
card_image_2 = 'https://storage.googleapis.com/kitchen-sink-sample-images/elephant.jpg';

# Suggested replies to be used in the cards
suggestions1 = [
      messages.SuggestedReply('Card #1', 'reply:card_1')
]

suggestions2 = [
      messages.SuggestedReply('Card #2', 'reply:card_2')
]

# Define the card contents for a carousel with two cards,
# each with one suggested reply
card_contents = []
card_contents.append(messages.CardContent('Card #1',
                                          'The description for card #1',
                                          card_image_1,
                                          'MEDIUM',
                                          suggestions1))

card_contents.append(messages.CardContent('Card #2',
                                          'The description for card #2',
                                          card_image_2,
                                          'MEDIUM',
                                          suggestions2))

# Send the device the carousel card defined above
carousel_card = messages.CarouselCard('MEDIUM', card_contents)
cluster = messages.MessageCluster().append_message(carousel_card)
cluster.send_to_msisdn('+12223334444')
Kode ini adalah kutipan dari agen contoh RBM.

C#

using Google.Apis.RCSBusinessMessaging.v1.Data;
using RCSBusinessMessaging;
using RCSBusinessMessaging.Cards;


// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation,
                                             projectId);

// Image references to be used in the carousel cards
string card1Image = "https://storage.googleapis.com/kitchen-sink-sample-images/cute-dog.jpg";
string card2Image = "https://storage.googleapis.com/kitchen-sink-sample-images/elephant.jpg";

// Suggestion chip lists to be used in carousel cards
List<Suggestion> suggestions1 = new List<Suggestion>
{
   new SuggestionHelper("Card #1", "card_1").SuggestedReply()
};

List<Suggestion> suggestions2 = new List<Suggestion>
{
   new SuggestionHelper("Card #2", "card_2").SuggestedReply()
};

// Create the card content for the carousel
List<CardContent> cardContents = new List<CardContent>
{
   // Add items as card content
   new StandaloneCardHelper(
                    "Card #1",
                    "The description for card #1",
                    card1Image,
                    suggestions1).GetCardContent(),
   new StandaloneCardHelper(
                    "Card #2",
                    "The description for card #2",
                    card2Image,
                    suggestions2).GetCardContent()
};

// Send the carousel to the user
rbmApiHelper.SendCarouselCards(cardContents, CardWidth.MEDIUM, msisdn);
Kode ini adalah kutipan dari agen contoh RBM.