Gửi tin nhắn

Các tác nhân RCS for Business giao tiếp với người dùng bằng cách gửi và nhận tin nhắn. Để gửi tin nhắn cho người dùng, tác nhân của bạn gửi yêu cầu tin nhắn đến API Nhắn tin Doanh nghiệp RCS. Một yêu cầu duy nhất có thể bao gồm văn bản , thẻ đa phương tiện, tệp PDF , câu trả lời được đề xuấthành động được đề xuất .

Nền tảng RCS for Business sẽ trả về lỗi trong một số trường hợp nhất định để giúp bạn quản lý việc gửi tin nhắn:

  • Nếu bạn gửi tin nhắn đến người dùng có thiết bị không hỗ trợ RCS hoặc không bật RCS, nền tảng RCS for Business sẽ trả về lỗi 404 NOT_FOUND. Trong trường hợp này, bạn có thể thử liên lạc với người dùng thông qua các phương thức dự phòng được định nghĩa trong cơ sở hạ tầng của mình.
  • Nếu bạn gửi tin nhắn đến người dùng RCS trên mạng mà tác nhân của bạn chưa được khởi chạy, hoặc trên mạng chưa bật lưu lượng RCS, nền tảng RCS for Business sẽ trả về lỗi 404 NOT_FOUND.
  • Nếu bạn gửi một tin nhắn có các tính năng mà thiết bị của người dùng không hỗ trợ, nền tảng RCS for Business sẽ trả về lỗi 400 INVALID_ARGUMENT và không gửi được tin nhắn của bạn.

Là một phần trong chiến lược nhắn tin đa kênh của bạn, tốt nhất là nên thu hồi những tin nhắn không được gửi sau một khoảng thời gian hợp lý và gửi chúng qua một kênh khác. Để tự động thu hồi tin nhắn vào một thời điểm đã định trước, hãy thiết lập thời gian hết hạn của tin nhắn .

Người nhận đang ngoại tuyến

Nền tảng RCS for Business vẫn chấp nhận gửi tin nhắn ngay cả khi người nhận ngoại tuyến. Bạn sẽ nhận được phản hồi 200 OK, và nền tảng RCS for Business sẽ giữ tin nhắn và thử gửi lại trong vòng 30 ngày. Không cần thiết phải yêu cầu RCS for Business gửi lại tin nhắn.

RCS for Business sẽ xóa mọi tin nhắn chưa được gửi sau 30 ngày kể từ khi chúng được gửi đi.

Tùy thuộc vào trường hợp sử dụng của tác nhân, bạn có thể muốn thu hồi tin nhắn chưa được gửi trước khi hết thời hạn 30 ngày. Việc thu hồi có thể ngăn người dùng ngoại tuyến nhận được tin nhắn lỗi thời khi họ trực tuyến trở lại. Có nhiều cách để thu hồi tin nhắn:

Đặt thời gian hết hạn cho tin nhắn

Tin nhắn của nhân viên hỗ trợ có cần phải gửi đúng thời điểm không? Ví dụ, mã OTP chỉ có hiệu lực trong một thời gian ngắn. Các ưu đãi có thời hạn sẽ hết hạn. Và lời nhắc lịch hẹn sẽ không còn phù hợp sau ngày hẹn. Để đảm bảo tin nhắn luôn kịp thời và phù hợp, hãy thiết lập thời gian hết hạn cho tin nhắn. Điều này có thể ngăn người dùng ngoại tuyến nhận được nội dung lỗi thời khi họ trực tuyến trở lại. Thời gian hết hạn cũng là một tín hiệu tốt để kích hoạt chiến lược nhắn tin dự phòng của bạn, đảm bảo người dùng nhận được thông tin họ cần đúng lúc.

Để thiết lập thời hạn hết hạn của tin nhắn, hãy chỉ định một trong các trường sau trong tin nhắn của tác nhân:

  • expireTime : thời gian chính xác theo giờ UTC khi tin nhắn hết hạn.
  • ttl (thời gian tồn tại): khoảng thời gian trước khi tin nhắn hết hạn.

Để biết các tùy chọn về định dạng và giá trị, hãy xem AgentMessage .

Giá trị tối đa cho ttlexpireTime15 ngày sau khi gửi tin nhắn.

Mặc dù không có giá trị tối thiểu ttlexpireTime , nhưng nên để ít nhất 10 giây sau khi gửi tin nhắn để giảm đáng kể khả năng nhận được thông báo về việc thu hồi và gửi thành công.

Thời gian sống (TTL) cho một thông điệp

Khi bạn thiết lập TTL cho tin nhắn RCS for Business, bạn đang chỉ định khoảng thời gian tin nhắn được coi là hợp lệ và có thể gửi được. Nếu tin nhắn không được gửi thành công đến thiết bị của người dùng trong khoảng thời gian TTL này, nền tảng RCS for Business sẽ tự động cố gắng thu hồi tin nhắn đó.

Khi bạn yêu cầu thu hồi tin nhắn, bạn yêu cầu nền tảng RCS for Business ngừng cố gắng gửi tin nhắn cụ thể đó. Tuy nhiên, hành động này chỉ ảnh hưởng đến các lần gửi trong tương lai. Nếu thiết bị của người dùng đã nhận được tin nhắn thành công, tin nhắn đang được xử lý và nền tảng RCS for Business không thể thu hồi tin nhắn khỏi thiết bị của người dùng.

Dưới đây là những điều bạn cần biết về thông báo:

  • Tin nhắn được gửi trong thời gian TTL: Nếu thiết bị của người dùng kết nối mạng và nhận được tin nhắn trước khi TTL hết hạn, bạn sẽ nhận được thông báo DELIVERED . Sẽ không có thông báo thu hồi nào được gửi đi, vì tin nhắn đã được gửi thành công. Đây là trường hợp phổ biến và được mong đợi nhất.

  • Tin nhắn không được gửi trước khi TTL hết hạn: Nếu TTL hết hạn trước khi tin nhắn đến thiết bị của người dùng (ví dụ: thiết bị ngoại tuyến), nền tảng RCS for Business sẽ cố gắng thu hồi tin nhắn. Bạn sẽ nhận được thông báo TTL_EXPIRATION_REVOKED , cho biết tin nhắn đã được xóa thành công khỏi hàng đợi gửi. Trong trường hợp này, người dùng sẽ không nhận được tin nhắn.

Các khuyến nghị để xử lý các trường hợp ngoại lệ

Hệ thống của chúng tôi xử lý việc gửi tin nhắn RCS for Business và thời hạn TTL song song. Do đó, rất hiếm khi bạn gặp phải trường hợp ngoại lệ mà thời điểm nhận thông báo không như mong đợi. Ví dụ, bạn có thể nhận được cả thông báo gửi thành công và thông báo TTL, hoặc không nhận được thông báo nào cả.

Dưới đây là các khuyến nghị của chúng tôi về cách xử lý thông báo tin nhắn RCS for Business:

  • Thông báo DELIVERED : Nếu bạn nhận được thông báo DELIVERED cho một tin nhắn, điều đó xác nhận tin nhắn đã đến tay người dùng. Bạn có thể bỏ qua bất kỳ thông báo TTL nào tiếp theo cho tin nhắn cụ thể đó.

  • Thông báo TTL_EXPIRATION_REVOKED : Nếu bạn nhận được thông báo TTL với trạng thái TTL_EXPIRATION_REVOKED , điều đó có nghĩa là hệ thống RCS for Business đã ngừng cố gắng gửi tin nhắn cụ thể đó. Bạn nên coi tin nhắn này là không được gửi thành công và tiến hành chiến lược dự phòng nếu cần.

  • Thông báo TTL với bất kỳ trạng thái nào khác: Nếu bạn nhận được thông báo TTL với bất kỳ trạng thái nào khác, điều này cho thấy nỗ lực thu hồi không thành công.

    • Đối với các thông báo quan trọng, chẳng hạn như mật khẩu dùng một lần (OTP), hãy kích hoạt phương thức dự phòng của bạn.
    • Đối với các tin nhắn không quan trọng, hãy quyết định xem có nên kích hoạt chế độ dự phòng hay không.
  • Không có thông báo: Trong những trường hợp hiếm gặp, hệ thống có thể không gửi được thông báo TTL và máy khách cũng có thể không tạo được thông báo giao hàng. Đây là trường hợp cực kỳ hiếm gặp.

Đặt loại lưu lượng tin nhắn

API RBM bao gồm trường messageTrafficType để phân loại tin nhắn. Mặc dù các trường hợp sử dụng của tác nhân vẫn xác định hành vi của tác nhân và các quy tắc nghiệp vụ nào được áp dụng, messageTrafficType cho phép phân loại nội dung tin nhắn chi tiết hơn. Cuối cùng, điều này giúp một tác nhân duy nhất có thể xử lý nhiều trường hợp sử dụng. Hiện tại, không có tác động nào đến các trường hợp sử dụng hiện có của tác nhân hoặc các quy tắc nghiệp vụ.

Trường này là tùy chọn, nhưng bạn nên thiết lập nó ngay bây giờ để tránh nhận được thông báo lỗi khi trường này trở thành bắt buộc.

Để thiết lập loại lưu lượng tin nhắn, hãy gán messageTrafficType phù hợp cho mỗi tin nhắn dựa trên nội dung của nó. RCS for Business hỗ trợ các loại lưu lượng sau.

Loại hình giao thông Nội dung tin nhắn Trường hợp sử dụng của tác nhân
AUTHENTICATION Dành cho các thông báo xác thực. Mã OTP
TRANSACTION Dùng cho các tin nhắn liên quan đến dịch vụ hoặc sản phẩm hiện có của người dùng. Ví dụ: xác nhận đơn hàng, biên lai thanh toán hoặc chi tiết đặt chỗ. Giao dịch hoặc đa dụng
PROMOTION Dùng cho các thông điệp quảng cáo như ưu đãi, giảm giá, thông báo hoặc nội dung quảng cáo khác. Dùng cho mục đích quảng cáo hoặc đa dụng
SERVICEREQUEST Dành cho các tin nhắn về các dịch vụ mà người dùng đã yêu cầu một cách rõ ràng. Mã OTP, giao dịch, khuyến mãi hoặc đa dụng
ACKNOWLEDGEMENT Đối với các tin nhắn dùng để xác nhận hành động của người dùng – cụ thể là yêu cầu hủy đăng ký. Điều này xác nhận rằng yêu cầu của người dùng đã được nhận và đang được xử lý. Mã OTP, giao dịch, khuyến mãi hoặc đa dụng

Nếu không thiết lập loại lưu lượng truy cập nào, hệ thống sẽ gán loại mặc định cho trường hợp sử dụng của tác nhân .

Trường hợp sử dụng của tác nhân Loại lưu lượng truy cập mặc định
Mã OTP AUTHENTICATION
Giao dịch TRANSACTION
Khuyến mãi PROMOTION
Đa năng MESSAGE_TRAFFIC_TYPE_UNSPECIFIED

Các tác nhân đa dụng không có loại lưu lượng mặc định. Bạn phải thiết lập loại lưu lượng một cách rõ ràng cho mỗi tin nhắn dựa trên nội dung của nó. Nếu bạn không thay thế giá trị MESSAGE_TRAFFIC_TYPE_UNSPECIFIED , lỗi sẽ xảy ra.

Giới hạn kích thước tin nhắn

Kích thước tối đa của toàn bộ chuỗi tin nhắn AgentMessage là 250 KB. Phần văn bản của tin nhắn có giới hạn riêng là 3072 ký tự.

Để tránh việc người dùng tiêu tốn dữ liệu ngoài dự kiến, kích thước tối đa của một tệp có thể gửi qua RCS for Business là 100 MiB, và tổng kích thước kết hợp của tất cả các tệp đa phương tiện và tệp đính kèm PDF trong một tin nhắn RCS for Business duy nhất không được vượt quá 100 MiB. (1 MiB = 1.048.576 byte). Để biết thêm thông tin, vui lòng tham khảo mục tệp đa phương tiện và PDF .

Chữ

Những thông điệp đơn giản nhất được tạo thành từ văn bản. Tin nhắn văn bản phù hợp nhất để truyền đạt thông tin mà không cần hình ảnh, tương tác phức tạp hoặc phản hồi.

Ví dụ

Đoạn mã sau gửi một tin nhắn văn bản thuần túy. Để biết các tùy chọn về định dạng và giá trị, hãy xem 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);
});
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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();
}
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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')
Đoạn mã này là một trích đoạn từ tác nhân mẫu RBM .

C#

using RCSBusinessMessaging;


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

rbmApiHelper.SendTextMessage(
    "Hello, world!",
    "+12223334444",
);
Đoạn mã này là một trích đoạn từ tác nhân mẫu RBM .

Nội dung tin nhắn cơ bản - chuyển đổi tin nhắn SMS

Các nhà mạng đã đưa ra các mô hình tính phí để hỗ trợ việc chuyển đổi tin nhắn SMS sang RCS for Business. Một tin nhắn RCS for Business chứa tối đa 160 ký tự UTF-8 được gọi là Tin nhắn Cơ bản.

Khi soạn thảo yêu cầu gửi tin nhắn cơ bản, hãy nhớ rằng mỗi ký tự được tính là 1 byte (UTF-8). Nếu bạn gửi tin nhắn chứa các ký tự đặc biệt như biểu tượng cảm xúc hoặc bộ ký tự đa byte, mỗi ký tự sẽ được tính là 2-4 ký tự UTF-8 hoặc nhiều hơn.

Nhập một đoạn văn bản vào ô để kiểm tra độ dài của nó:

Các ứng dụng khách RCS có thể triển khai tính năng xem trước liên kết. Nếu một tin nhắn RCS for Business chỉ chứa văn bản bao gồm URL của một trang web có gắn thẻ openGraph , ứng dụng khách có thể tạo bản xem trước (hình ảnh, tiêu đề, v.v.), mang lại trải nghiệm phong phú hơn. Ví dụ, hãy xem một tin nhắn cơ bản với tính năng xem trước URL .

Xin lưu ý rằng ứng dụng khách RCS có thể cho phép người dùng tắt tính năng xem trước liên kết.

Mật khẩu dùng một lần để xác minh người dùng

Bạn có thể sử dụng RCS for Business để gửi mật khẩu dùng một lần (OTP) để xác minh người dùng tự động bằng API SMS Retriever. Hiện không có API chuyên dụng nào để đọc các OTP được gửi qua RCS for Business.

Cách thức hoạt động trên Android

Đối với các ứng dụng Android đã đăng ký với API SMS Retriever , API sẽ lắng nghe tin nhắn RCS for Business được định dạng chính xác. Tin nhắn này phải chứa cả mã OTP và một mã băm duy nhất để xác định ứng dụng của bạn.

Khi nhận được tin nhắn RCS for Business với định dạng chính xác, API SMS Retriever sẽ xử lý nó giống như cách xử lý mã OTP qua SMS. Sau khi mã băm được khớp với ứng dụng của bạn, mã OTP sẽ được trích xuất và chuyển tiếp đến ứng dụng của bạn để xác minh người dùng tự động.

  • Ví dụ tin nhắn văn bản RCS dành cho doanh nghiệp để xác minh người dùng: Your code is <OTP><app hash>.
  • Ví dụ: Your code is 123456 M8tue43FGT.

Để tìm hiểu thêm về SMS Retriever và các API liên quan, hãy xem tài liệu SMS Retriever . Để biết chi tiết về xác minh người dùng tự động trong các ứng dụng đã đăng ký với API SMS Retriever, hãy xem sơ đồ luồng này.

Cách thức hoạt động trên iOS

Đối với iOS, tính năng xử lý OTP tích hợp sẵn của hệ thống tự động phát hiện và đề xuất mã OTP RCS for Business để tự động điền, tương tự như OTP qua SMS. Ứng dụng iOS không yêu cầu tích hợp API cụ thể nào để đọc mã OTP.

Tệp đa phương tiện và tệp PDF

Khi bạn gửi tin nhắn kèm hình ảnh, video, âm thanh hoặc tệp PDF, người đại diện của bạn phải cung cấp URL công khai cho nội dung đó hoặc tải trực tiếp tệp lên.

Kích thước tối đa của một tập tin được gửi là 100 MiB, và tổng kích thước của tất cả các tệp đính kèm đa phương tiện và PDF trong một tin nhắn không được vượt quá 100 MiB.

Nén và chuyển mã phương tiện

Nền tảng RCS for Business tự động chuyển mã và nén các tệp đa phương tiện (như hình ảnh và video) trước khi gửi đi để đảm bảo chúng tải nhanh và hoạt động tốt trên các mạng và thiết bị khác nhau.

Việc nén dựa trên chất lượng của phương tiện đầu vào chứ không chỉ dựa vào giới hạn kích thước tệp. Điều này có nghĩa là một tệp có thể được nén ngay cả khi kích thước của nó nhỏ hơn nhiều so với giới hạn tối đa 100 MiB. Các tiêu chuẩn chuyển mã thay đổi liên tục, vì vậy không có giới hạn kích thước tệp cố định nào xác định khi nào quá trình chuyển mã bị bỏ qua. Hãy thử nghiệm với các định dạng phương tiện, kích thước và tỷ lệ nén khác nhau để tìm ra sự cân bằng tối ưu cho dữ liệu của bạn.

Thông số kỹ thuật thu nhỏ

Đối với các tệp đa phương tiện, bạn cũng có thể chỉ định hình ảnh thu nhỏ cho phép người dùng xem trước nội dung trước khi nhấp vào. Đối với các tệp âm thanh, tiện ích âm thanh mặc định được sử dụng làm hình ảnh giữ chỗ.

  • Kích thước tệp tối đa của ảnh thu nhỏ là 100 kB. Để có trải nghiệm người dùng tối ưu, chúng tôi khuyên bạn nên đặt kích thước tệp là 50 kB hoặc nhỏ hơn.
  • Tỷ lệ khung hình của ảnh thu nhỏ phải khớp với tỷ lệ khung hình của tệp gốc.

Quản lý bộ nhớ đệm và URL

Nền tảng RCS for Business lưu trữ các tệp trong bộ nhớ đệm trong 60 ngày, và API sẽ trả về ID tệp mà nhân viên hỗ trợ của bạn có thể đưa vào tin nhắn gửi cho người dùng. Sau 60 ngày, RCS for Business sẽ xóa các tệp khỏi bộ nhớ đệm.

Khi chỉ định tệp bằng URL, tốt nhất nên đặt contentMessage.forceRefresh thành false . Việc đặt contentMessage.forceRefresh thành true sẽ buộc RCS for Business phải tải nội dung mới từ URL được chỉ định, ngay cả khi nội dung URL đã được lưu vào bộ nhớ cache, điều này làm tăng thời gian gửi tin nhắn cho người dùng.

Ví dụ về URL tập tin

Đoạn mã sau gửi một hình ảnh. Để biết các tùy chọn về định dạng và giá trị, hãy xem 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);
});
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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();
}
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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')
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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");
Đoạn mã này là một trích đoạn từ tác nhân mẫu RBM .

Ngoài ra, bạn cũng có thể tải lên các tệp đa phương tiện trước khi gửi chúng trong tin nhắn bằng cách sử dụng files.create .

Ví dụ về tải lên tập tin

Đoạn mã sau tải lên một tệp video và một tệp hình thu nhỏ, sau đó gửi cả hai tệp trong một tin nhắn. Để biết các tùy chọn định dạng và giá trị, hãy xem files.createAgentContentMessage .

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"
    }
  }
}'

Các loại phương tiện được hỗ trợ

RCS for Business hỗ trợ các loại phương tiện sau. Đối với ảnh thu nhỏ, chỉ hỗ trợ các định dạng image/jpeg, image/jpg, image/gif và image/png.

Loại phương tiện Loại tài liệu Sự mở rộng Hoạt động với thẻ đa dạng
ứng dụng/ogg Âm thanh OGG .ogx KHÔNG
ứng dụng/pdf PDF .pdf Có (Chỉ áp dụng cho Google Messages tại Ấn Độ)
âm thanh/aac Âm thanh AAC .aac KHÔNG
âm thanh/mp3 Âm thanh MP3 .mp3 KHÔNG
âm thanh/mpeg Âm thanh MPEG .mpeg KHÔNG
âm thanh/mpg Âm thanh MPG .mp3 KHÔNG
âm thanh/mp4 Âm thanh MP4 .mp4 KHÔNG
audio/mp4-latm Âm thanh MP4-latm .mp4 KHÔNG
âm thanh/3gpp Âm thanh 3GPP .3gp KHÔNG
ảnh/jpeg JPEG .jpeg, .jpg Đúng
ảnh/gif GIF .gif Đúng
ảnh/png PNG .png Đúng
video/h263 Video H263 .h263 Đúng
video/m4v Video M4V .m4v Đúng
video/mp4 Video MP4 .mp4 Đúng
video/mpeg4 Video MPEG-4 .mp4, .m4p Đúng
video/mpeg Video MPEG .mpeg Đúng
video/webm Video WEBM .webm Đúng

Gợi ý

Trợ lý ảo của bạn gửi các đề xuất (đề xuất trả lời và đề xuất hành động) dưới dạng danh sách đề xuất hoặc thẻ thông tin chi tiết .

Câu trả lời được đề xuất

Các câu trả lời gợi ý hướng dẫn người dùng trong suốt cuộc hội thoại bằng cách cung cấp các phản hồi mà nhân viên hỗ trợ của bạn biết cách xử lý.

Khi người dùng nhấn vào câu trả lời được đề xuất, tác nhân của bạn sẽ nhận được một sự kiện chứa văn bản trả lời và dữ liệu phản hồi . Dữ liệu phản hồi có tối đa 2048 ký tự.

Ví dụ

Đoạn mã sau gửi tin nhắn kèm theo hai câu trả lời gợi ý. Để biết thêm thông tin về định dạng và tùy chọn giá trị, hãy xem 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);
});
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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();
}
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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')
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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
);
Đoạn mã này là một trích đoạn từ tác nhân mẫu RBM .

Các hành động được đề xuất

Các hành động được đề xuất hướng dẫn người dùng trong các cuộc hội thoại bằng cách tận dụng chức năng tích hợp sẵn trên thiết bị của họ. Nhân viên hỗ trợ có thể đề xuất người dùng gọi một số điện thoại, mở một vị trí trên bản đồ, chia sẻ vị trí, mở một URL hoặc tạo sự kiện trên lịch.

Đối với mỗi hành động được đề xuất, bạn có thể tùy chọn cung cấp URL dự phòng (tối đa 2048 ký tự). URL này sẽ mở trong một cửa sổ trình duyệt mới nếu thiết bị của người dùng không hỗ trợ hành động được đề xuất.

Khi người dùng nhấn vào một hành động được đề xuất, tác nhân của bạn sẽ nhận được một sự kiện chứa dữ liệu phản hồi của hành động đó .

Để biết các tùy chọn về định dạng và giá trị, hãy xem SuggestedAction .

Hiển thị gợi ý

Có hai cách hiển thị gợi ý:

  • Tính năng cố định : Các hành động hoặc câu trả lời được đề xuất sẽ hiển thị bên trong bong bóng tin nhắn và giữ nguyên vị trí trong suốt cuộc trò chuyện.
  • Tạm thời : Những gợi ý được hiển thị bên ngoài bong bóng tin nhắn và biến mất khi cuộc trò chuyện tiếp tục.

Các định dạng tin nhắn được hỗ trợ

  • Gợi ý liên tục: Làm việc với tin nhắn văn bản độc lập và thẻ đa phương tiện.
  • Gợi ý tạm thời: Làm việc với tin nhắn văn bản độc lập, tin nhắn đa phương tiện và thẻ thông tin phong phú.

Kết hợp các đề xuất

Bạn có thể kết hợp các gợi ý cố định và tạm thời trong cùng một tin nhắn hoặc thẻ thông tin chi tiết.

  • Tin nhắn văn bản: Theo mặc định, các đề xuất chỉ có hiệu lực tạm thời. Để chúng hiển thị lâu hơn trong bong bóng thông báo, bạn cần cấu hình chúng thành dạng lưu trữ vĩnh viễn.
  • Thẻ đa chức năng: Theo mặc định, loại thẻ này hỗ trợ tối đa bốn gợi ý cố định. Sau đó, bạn có thể thêm các gợi ý tạm thời dưới dạng "danh sách chip" bên dưới thẻ.

Giới hạn đề xuất

Một tin nhắn văn bản hỗ trợ tối đa 11 gợi ý. Bất kỳ gợi ý cố định nào bạn thêm vào đều được tính vào giới hạn này. Ví dụ, nếu bạn thêm 4 gợi ý cố định, bạn có thể thêm tối đa 7 gợi ý tạm thời.

Loại đề xuất Giới hạn Nơi chúng xuất hiện
Kiên trì Tối đa 4 Bên trong bong bóng tin nhắn
Tạm thời Lên đến 11 Bên ngoài bong bóng (như những miếng khoai tây chiên)

Giới hạn ký tự

Mỗi gợi ý có tối đa 25 ký tự.

Tính minh bạch của URL trong các hành động được đề xuất

Để xây dựng lòng tin của người dùng, URL cơ bản được hiển thị dưới dạng dòng văn bản thứ hai bên trong nút gợi ý cho các hành động được đề xuất "Mở URL". Hành vi nhất quán này được áp dụng cho tất cả các tin nhắn văn bản độc lập, thẻ thông tin đa dạng và băng chuyền hình ảnh.

Hỗ trợ khách hàng bằng những đề xuất liên tục.

  • Hỗ trợ: Google Messages (phiên bản 20260225.00 trở lên).
  • Không được hỗ trợ: Các phiên bản Google Messages trước ngày 20260225.00 , iOS và Samsung Messages.

Quay số

Thao tác Quay số hướng dẫn người dùng quay số điện thoại do tổng đài viên của bạn chỉ định. Số điện thoại chỉ được bao gồm các chữ số ( 0-9 ), dấu cộng ( + ), dấu sao ( * ) và dấu thăng ( # ). Định dạng quốc tế E.164 (ví dụ: +14155555555 ) được hỗ trợ nhưng không bắt buộc. Tức là, cả +141555555551011 đều là các số hợp lệ.

Ví dụ

Đoạn mã sau gửi một thao tác quay số. Để biết các tùy chọn định dạng và giá trị, hãy xem 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);
});
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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();
}
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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')
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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
);
Đoạn mã này là một trích đoạn từ tác nhân mẫu RBM .

Xem vị trí

Thao tác "Xem vị trí" hiển thị một vị trí trên ứng dụng bản đồ mặc định của người dùng. Bạn có thể chỉ định vị trí bằng vĩ độ và kinh độ hoặc bằng truy vấn dựa trên vị trí hiện tại của người dùng. Bạn cũng có thể đặt nhãn tùy chỉnh cho ghim hiển thị trên ứng dụng bản đồ.

Ví dụ

Đoạn mã sau gửi một hành động định vị khung nhìn. Để biết các tùy chọn định dạng và giá trị, hãy xem 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);
});
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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();
}
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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')
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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
);
Đoạn mã này là một trích đoạn từ tác nhân mẫu RBM .

Chia sẻ vị trí

Thao tác Chia sẻ vị trí cho phép người dùng chia sẻ vị trí với nhân viên hỗ trợ của bạn. Người dùng có thể chia sẻ vị trí hiện tại của họ hoặc một vị trí được chọn thủ công từ ứng dụng Bản đồ.

Ví dụ

Đoạn mã sau gửi một hành động chia sẻ vị trí. Để biết các tùy chọn định dạng và giá trị, hãy xem 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);
});
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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();
}
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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')
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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
);
Đoạn mã này là một trích đoạn từ tác nhân mẫu RBM .

Mở URL

Thao tác Mở URL cho phép bạn hướng người dùng đến một trang web do tác nhân của bạn chỉ định. Theo mặc định, trang web sẽ mở trong trình duyệt của người dùng. Bạn cũng có thể thiết lập để trang web mở trong trình xem web. Xem phần Mở URL bằng trình xem web để biết thêm chi tiết.

Chỉ có trong Google Messages

Hiển thị URL gốc : Để cải thiện tính minh bạch trong tin nhắn A2P, Google Messages hiển thị địa chỉ URL gốc trong các hành động được đề xuất "Mở URL". Thay đổi này ảnh hưởng đến các hành động được đề xuất trong thẻ thông tin đa dạng tiêu chuẩn và băng chuyền thẻ thông tin đa dạng .

Một thẻ thông tin chi tiết hiển thị gợi ý "Xem trang web" với URL được hiển thị bên dưới.
URL cơ bản hiển thị

Hiển thị biểu tượng ứng dụng cho liên kết web : Nếu người dùng đã cấu hình ứng dụng mặc định cho trang web, ứng dụng đó sẽ mở thay vì trình duyệt hoặc webview, và nút gợi ý sẽ hiển thị biểu tượng của ứng dụng. Để biểu tượng ứng dụng xuất hiện trong Google Messages, bạn cần cung cấp URL đầy đủ và trực tiếp. Nếu bạn sử dụng URL rút gọn, biểu tượng "Mở URL" mặc định sẽ hiển thị thay thế.

Biểu tượng ứng dụng trong nút gợi ý.
Biểu tượng ứng dụng trong nút đề xuất
Ví dụ

Đoạn mã sau gửi một hành động mở URL. Để biết các tùy chọn định dạng và giá trị, hãy xem 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);
});
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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();
}
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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')
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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
);
Đoạn mã này là một trích đoạn từ tác nhân mẫu RBM .

Mở URL bằng webview

Thao tác "Mở URL bằng webview" sẽ tải trang web được chỉ định bên trong ứng dụng nhắn tin bằng công cụ hiển thị của trình duyệt mặc định. Điều này cho phép người dùng tương tác với trang web mà không cần rời khỏi cuộc trò chuyện RCS for Business. Nếu thiết bị của người dùng không hỗ trợ webview, trang web sẽ được mở trong trình duyệt của người dùng. Để bật webview, hãy xem OpenURLApplication .

Webview có ba chế độ hiển thị. Để biết các tùy chọn định dạng và giá trị, hãy xem WebviewViewMode .

  • Chế độ đầy đủ: Trang web chiếm toàn bộ màn hình
  • Một nửa: Trang web chiếm một nửa màn hình.
  • Chiều cao: Trang web chiếm ba phần tư màn hình.
Ví dụ

Đoạn mã sau gửi một hành động Mở URL với webview. Để biết các tùy chọn định dạng và giá trị, hãy xem 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;
    }

Tạo sự kiện trên lịch

Thao tác "Tạo sự kiện lịch" sẽ mở ứng dụng lịch của người dùng và bắt đầu tạo một sự kiện mới với các thông tin đã được chỉ định.

Tiêu đề sự kiện trên lịch là bắt buộc. Tiêu đề có tối đa 100 ký tự. Mô tả sự kiện trên lịch là tùy chọn và có tối đa 500 ký tự.

Ví dụ

Đoạn mã sau gửi một hành động tạo sự kiện lịch. Để biết các tùy chọn định dạng và giá trị, hãy xem 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);
});
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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();
}
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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')
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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
);
Đoạn mã này là một trích đoạn từ tác nhân mẫu RBM .

Danh sách chip gợi ý

Trợ lý ảo của bạn gửi danh sách các gợi ý (chip) kèm theo tin nhắn để hướng dẫn các hành động tiếp theo của người dùng. Danh sách gợi ý chỉ hiển thị khi tin nhắn liên quan nằm ở cuối cuộc hội thoại. Bất kỳ tin nhắn nào tiếp theo trong cuộc hội thoại (từ người dùng hoặc trợ lý ảo của bạn) sẽ ghi đè lên danh sách gợi ý.

Các thẻ trong danh sách là các câu trả lờihành động được đề xuất .

Danh sách chip chứa tối đa 11 chip gợi ý, và mỗi nhãn chip có thể có tối đa 25 ký tự.

Để biết các tùy chọn về định dạng và giá trị, hãy xem AgentContentMessage .

Thẻ Rich

Thẻ đa phương tiện kết hợp nhiều yếu tố như hình ảnh, văn bản và gợi ý tương tác trong một thông điệp duy nhất. Chúng rất lý tưởng để trình bày thông tin liên quan (ví dụ: một sản phẩm với hình ảnh, tên và giá cả) và hướng dẫn người dùng bằng các bước tiếp theo rõ ràng, chẳng hạn như gợi ý "Xem chi tiết".

Một thẻ đa chức năng có thể chứa các thông tin sau:

Mỗi trường thông tin này đều không bắt buộc, nhưng ít nhất một trong các trường 1–3 phải được điền vào thẻ thông tin chi tiết.

Nhiều thiệp có thể được gửi cùng nhau trong một băng chuyền cuộn ngang.

Lưu ý rằng tổng dung lượng dữ liệu cho một thẻ thông minh là 250 KB.

Để biết thông tin chi tiết về mặt kỹ thuật, vui lòng xem tài liệu Rich cards .

Chiều cao thẻ

Thẻ Rich Cards tự động mở rộng theo chiều dọc để phù hợp với nội dung bên trong. Chúng có chiều cao tối thiểu là 112 DP và chiều cao tối đa là 344 DP. Nếu nội dung thẻ không đủ lớn để lấp đầy chiều cao tối thiểu, thẻ sẽ tự động mở rộng và lấp đầy phần chiều cao thừa bằng khoảng trắng.

Nội dung đa phương tiện trong thẻ thông tin phải phù hợp với một trong ba chiều cao sau:

  • Ngắn: 112 DP
  • Trung bình: 168 DP
  • Chiều cao: 264 DP

Nếu nội dung đa phương tiện không vừa với kích thước thẻ được chỉ định theo chiều cao đã chọn, bản xem trước đa phương tiện sẽ được chọn bằng cách phóng to và cắt xén nội dung đó.

Ví dụ

Đoạn mã sau gửi một thẻ thông tin đa phương tiện (rich card) kèm hình ảnh và các gợi ý trả lời. Để biết thêm thông tin về định dạng và tùy chọn giá trị, hãy xem 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);
});
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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();
}
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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')
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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");
Đoạn mã này là một trích đoạn từ tác nhân mẫu RBM .

Băng chuyền thẻ phong phú

Các băng chuyền hình ảnh kết nối nhiều thẻ thông tin phong phú , cho phép người dùng so sánh các mặt hàng và phản hồi từng mặt hàng một cách riêng biệt.

Carousel có thể chứa tối thiểu hai và tối đa mười thẻ thông tin chi tiết. Các thẻ thông tin chi tiết trong carousel phải tuân thủ các yêu cầu chung về nội dung và chiều cao, như được mô tả trong tài liệu về thẻ thông tin chi tiết . Để biết thêm thông tin về bố cục và thông số kỹ thuật của carousel, hãy xem tài liệu về Carousel .

Ví dụ

Đoạn mã sau gửi một băng chuyền thẻ thông tin đa dạng. Để biết các tùy chọn định dạng và giá trị, hãy xem 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);
});
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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/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();
        }
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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/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')
Đoạn mã này là một trích đoạn từ tác nhân mẫu 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/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);
Đoạn mã này là một trích đoạn từ tác nhân mẫu RBM .