Để kiểm tra xem thiết bị của người dùng có hỗ trợ RCS và có thể giao tiếp với một tác nhân RBM hay không, bạn có thể yêu cầu thông tin về các tính năng của thiết bị. Việc xác định những tính năng mà thiết bị hỗ trợ (nếu có) cho phép tác nhân của bạn điều chỉnh cuộc trò chuyện cho phù hợp với các chức năng của thiết bị và tránh trình bày những lượt tương tác mà người dùng khó hoặc không thể hoàn thành.
Nếu thiết bị của người dùng không nhận được tin nhắn RCS, bạn có thể giao tiếp với người dùng thông qua các dịch vụ khác, chẳng hạn như SMS/MMS.
Kiểm tra các chức năng của thiết bị
Đoạn mã sau đây gửi một yêu cầu kiểm tra khả năng và chờ phản hồi. Để biết các lựa chọn về định dạng và giá trị, hãy xem getCapabilities.
cURL
curl -X GET "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/capabilities?requestId=REQUEST_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`"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); // Send a capability check to the device rbmApiHelper.checkCapability('+12223334444', function(response) { // Print capabilities of the device console.log(response); });
Java
import com.google.rbm.RbmApiHelper; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Check the capabilities of the device boolean capability = rbmApiHelper.getCapability("+12223334444");
Python
# Reference to RBM Python client helper from rcs_business_messaging import rbm_service # Send the tester invite to a device response = rbm_service.make_cap_request('+12223334444')
C#
using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); // Register the device as a tester Capabilities capabilities = rbmApiHelper.GetCapability("+12223334444");
Phản hồi về chức năng
Sau khi chạy quy trình kiểm tra khả năng, nền tảng RBM sẽ trả về một danh sách tính năng ở định dạng JSON mà thiết bị được chỉ định hỗ trợ.
{ "features": [ "RICHCARD_STANDALONE", "RICHCARD_CAROUSEL", "ACTION_CREATE_CALENDAR_EVENT", "ACTION_DIAL", "ACTION_OPEN_URL", "ACTION_SHARE_LOCATION", "ACTION_VIEW_LOCATION", "ACTION_OPEN_URL_IN_WEBVIEW", "PDF_IN_RICH_CARDS" ] }
Yêu cầu này trả về phản hồi hoặc lỗi.
Phản hồi thành công chỉ được trả về nếu MSISDN (số điện thoại) đã kết nối với dịch vụ RCS trong vòng 31 ngày qua. Điều này có nghĩa là thiết bị của người dùng đã đăng ký với máy chủ RCS của chúng tôi trong khoảng thời gian đó. Các thiết bị trực tuyến và có RCS sẽ kiểm tra sau mỗi 1 đến 4 giờ (trung bình).
Nếu người dùng di chuyển thẻ SIM sang một thiết bị khác có hỗ trợ RCS, thì mối liên kết thiết bị trước đó sẽ bị xoá và một mối liên kết mới sẽ được tạo, cập nhật các chức năng của thiết bị trong dịch vụ RCS.
Nếu thẻ SIM được lắp vào một thiết bị mà nhà mạng hoặc nhà sản xuất đã tắt RCS hoặc thẻ SIM vẫn chưa được sử dụng, thì dịch vụ RCS vẫn sẽ cố gắng gửi tin nhắn đến thiết bị được liên kết trước đó trong tối đa 31 ngày.
Sau đây là những nguyên nhân gây ra lỗi 404:
Người dùng không thể nhận được tin nhắn qua RBM, chẳng hạn như nếu thiết bị của họ không hỗ trợ RCS.
Người dùng có RCS, nhưng tác nhân của bạn không được khởi chạy trên mạng di động của họ.
Xếp hàng ngoại tuyến
Tin nhắn được xếp hàng đợi tối đa 31 ngày và được gửi khi thiết bị kết nối lại với mạng. Điều này có nghĩa là ngay cả khi thiết bị không kết nối mạng trong một khoảng thời gian dài (tối đa 31 ngày), các tin nhắn trong hàng đợi vẫn sẽ được gửi khi thiết bị kết nối lại, miễn là MSISDN đã kết nối với dịch vụ RCS trong vòng 31 ngày qua.
Kiểm tra hàng loạt các chức năng
Để ước tính số lượng người dùng có thể liên hệ qua RBM, hãy kiểm tra khả năng hỗ trợ hàng loạt. Tính năng kiểm tra hàng loạt cho biết liệu có thể liên hệ với một số điện thoại hay không, nhưng không cho biết tính năng nào mà số điện thoại đó hỗ trợ.
Đối với mỗi lần kiểm tra hàng loạt khả năng, bạn phải cung cấp từ 500 đến 10.000 số điện thoại riêng biệt. Để kiểm tra nhiều số điện thoại hơn, hãy thực hiện nhiều lần kiểm tra. Bạn có thể thực hiện tối đa 600 cuộc gọi mỗi phút. Sử dụng Bulk Capability Check Script để sử dụng tệp CSV làm định dạng đầu vào. Các lượt kiểm tra hàng loạt được đọc từ bộ nhớ đệm về các tính năng. Bộ nhớ đệm này được các ứng dụng cập nhật một cách tự nhiên bằng RCS. Các tác nhân không yêu cầu trực tiếp khả năng của từng thiết bị. Vì lý do này, kết quả có thể không phải là kết quả mới nhất.
Tính năng kiểm tra hàng loạt khả năng tiếp cận sẽ trả về danh sách những số điện thoại mà trợ lý của bạn có thể liên hệ trên các nhà mạng mà trợ lý được ra mắt, cũng như số liệu ước tính về tổng số người dùng có thể liên hệ trên tất cả các nhà mạng. Xem Phản hồi kiểm tra khả năng hàng loạt.
Ước tính tổng số người dùng có thể tiếp cận
Mặc dù phản hồi kiểm tra hàng loạt bao gồm danh sách số điện thoại có thể liên hệ ngay với các nhà mạng mà tác nhân của bạn đã ra mắt (reachableUsers), nhưng phản hồi cũng bao gồm 2 giá trị có thể giúp bạn ước tính tổng số người dùng có thể liên hệ trên tất cả các nhà mạng.
Cách hoạt động
Khi nhân viên hỗ trợ của bạn thực hiện kiểm tra hàng loạt khả năng, RBM sẽ lấy mẫu ngẫu nhiên khoảng 75% số điện thoại đó để kiểm tra tất cả các nhà mạng (được báo cáo trong totalRandomSampleUserCount). RBM cũng trả về số lượng số điện thoại có thể liên hệ qua RBM từ mẫu ngẫu nhiên, bất kể trạng thái ra mắt của nhà mạng (reachableRandomSampleUserCount). Bằng cách chia reachableRandomSampleUserCount cho totalRandomSampleUserCount, bạn có thể ước tính tỷ lệ phần trăm số điện thoại mà nhân viên hỗ trợ có thể liên hệ nếu được ra mắt trên tất cả các nhà mạng.
Ví dụ: nếu bạn chỉ định 5.000 số điện thoại trong tính năng kiểm tra hàng loạt và RBM lấy mẫu ngẫu nhiên khoảng 75% số điện thoại đã chỉ định, thì totalRandomSampleUserCount có thể là 3750. Nếu reachableRandomSampleUserCount là 3000, thì 80% số được lấy mẫu có thể truy cập được.
Tính đến việc lấy mẫu ngẫu nhiên
Việc kiểm thử các mẫu ngẫu nhiên có thể dẫn đến sự khác biệt về tỷ lệ phần trăm. Để tính đến ảnh hưởng của việc lấy mẫu ngẫu nhiên, hãy chạy các quy trình kiểm tra hàng loạt về khả năng với số lượng lớn hơn đối với số điện thoại. Bạn cũng có thể thực hiện kiểm tra với cùng một lô số nhiều lần, sau đó tính trung bình kết quả để chuẩn hoá hành vi lấy mẫu ngẫu nhiên.
Gửi yêu cầu kiểm tra hàng loạt khả năng
Đoạn mã sau đây gửi một yêu cầu kiểm tra hàng loạt khả năng và chờ phản hồi. Để biết các lựa chọn về định dạng và giá trị, hãy xem users.batchGet.
Số điện thoại phải ở định dạng E.164 (ví dụ: "+12223334444") và danh sách phải chứa từ 500 đến 10.000 số điện thoại riêng biệt.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/users:batchGet?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 '{ "users": [ "PHONE_NUMBER", ] }'
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); // Specify phone numbers let phoneNumbers = ['+12223334444', '+12223334444']; // Perform a bulk capability check rbmApiHelper.getUsers(phone_numbers, function(response) { // Print the bulk capability check response console.log(response); });
Java
import com.google.rbm.RbmApiHelper; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Perform a bulk capability check BatchGetUsersResponse batchGetUsersResponse = rbmApiHelper.getUsers(Arrays.asList("+12223334444", "+12223334444"));
Python
# Reference to RBM Python client helper from rcs_business_messaging import rbm_service # Perform a bulk capability check response = rbm_service.make_batch_cap_request(['+12223334444', '+12223334444'])
C#
using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); // Perform a bulk capability check BatchGetUsersResponse batchGetUsersResponse = rbmApiHelper.GetUsers(new List({"+12223334444", "+12223334444"}));
Phản hồi kiểm tra khả năng hàng loạt
Sau khi chạy quy trình kiểm tra hàng loạt khả năng, RBM sẽ trả về một phản hồi ở định dạng JSON.
{
"reachableUsers": [
"PHONE_NUMBER"
],
"totalRandomSampleUserCount": "COUNT_OF_SAMPLE",
"reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE"
}| Trường | Mô tả |
|---|---|
reachableUsers
|
Danh sách người dùng có thể liên hệ trên các hãng vận chuyển mà trợ lý đã ra mắt. |
totalRandomSampleUserCount
|
Số lượng của một mẫu ngẫu nhiên gồm các số được chỉ định. Thường là khoảng 75% số lượng được chỉ định. |
reachableRandomSampleUserCount
|
Số lượng số điện thoại trong mẫu ngẫu nhiên có thể liên hệ qua RBM trên tất cả các nhà mạng, bất kể nhà mạng nào mà tác nhân được khởi chạy. Số liệu này được dùng để ước tính sơ bộ tổng số người dùng có thể tiếp cận trên tất cả các nhà mạng. |
reachableUsersMap
|
Chỉ có đầu ra. Bản đồ mã nhận dạng hãng vận chuyển đến danh sách người dùng có thể liên hệ trên hãng vận chuyển đó. Trường này chỉ được điền sẵn cho số điện thoại ở Hoa Kỳ. |
Công cụ: Tập lệnh kiểm tra khả năng hàng loạt
Buck Capability Check Script (Tập lệnh kiểm tra khả năng hàng loạt) (Đăng nhập để tải xuống) thực hiện các quy trình kiểm tra khả năng hàng loạt bằng cách sử dụng tệp CSV làm định dạng đầu vào và đầu ra. Tập lệnh này phân tích cú pháp tệp CSV gồm các số điện thoại di động và sử dụng RBM SDK để kiểm tra các chức năng của mọi thiết bị trong danh sách.
Một máy ảo có 2 CPU và 4 GB RAM chạy tập lệnh với 500 luồng có thể đạt khoảng 1.000 QPS, nhưng QPS tổng thể phụ thuộc vào máy được sử dụng, quốc gia của thiết bị, cấu hình theo khu vực của tác nhân và điểm cuối API được sử dụng.
Điều kiện tiên quyết
Trước khi sử dụng công cụ này để thực hiện quy trình kiểm tra hàng loạt các chức năng, hãy lấy những thông tin sau:
- Đường dẫn đến một tệp CSV có chứa các số MSISDN để thực hiện kiểm tra khả năng
- Đường dẫn đến khoá tài khoản dịch vụ của tác nhân trên máy phát triển
Ngoài ra, bạn cần cài đặt phần mềm sau trên máy phát triển:
- Apache Maven 3.3.9 trở lên
- Java 8
Thiết lập
Để thiết lập máy phát triển cho quy trình kiểm tra hàng loạt khả năng, hãy làm như sau:
- Tải xuống và trích xuất Tập lệnh kiểm tra khả năng hàng loạt (Đăng nhập để tải xuống).
- Làm theo các bước trong tệp README.
Chạy quy trình kiểm tra hàng loạt các tính năng
Để chạy quy trình kiểm tra hàng loạt, hãy làm theo các bước sau:
- Trong một thiết bị đầu cuối, hãy chuyển đến thư mục gốc của tập lệnh.
Chạy các lệnh sau:
export MAVEN_OPTS="-Xms1024m -Xmx3000m"mvn compile && mvn exec:java -Dexec.args="AGENT_ID INPUT_FILE OUTPUT_FILE NUM_OF_THREADS START_INDEX END_INDEX"Thay thế các biến bằng những giá trị mà bạn đã xác định.
Thay thế Có tích hợp Ví dụ: AGENT_ID Mã nhận dạng của nhân viên hỗ trợ RCS cho Doanh nghiệp. welcome-botINPUT_FILE Đường dẫn đến tệp CSV đầu vào. input.csvOUTPUT_FILE Đường dẫn đến tệp CSV đầu ra. output.csvNUM_OF_THREADS Số lượng luồng dành riêng cho các lượt kiểm tra khả năng. 500START_INDEX Không bắt buộc. Giá trị trong tệp CSV để bắt đầu chạy các quy trình kiểm tra. 5END_INDEX Không bắt buộc. Giá trị trong tệp CSV để kết thúc các bước kiểm tra sau. 500Khi tập lệnh hoàn tất, hãy mở tệp CSV đầu ra để xem kết quả.