Để 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 tác nhân RBM hay không, bạn có thể yêu cầu các chức 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 trợ lý điều chỉnh cuộc trò chuyện cho phù hợp với chức năng của thiết bị và tránh đưa ra các hoạt động tương tác mà người dùng khó hoặc không thể hoàn tất.
Nếu thiết bị của người dùng không thể nhận 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 chức năng của thiết bị
Mã sau đây sẽ gửi một yêu cầu kiểm tra chức năng và chờ phản hồi. Để biết các tuỳ chọn đị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 chức năng, nền tảng RBM sẽ trả về danh sách các tính năng được hỗ trợ ở định dạng JSON của thiết bị được chỉ định.
{ "features": [ "REVOCATION", "RICHCARD_STANDALONE", "RICHCARD_CAROUSEL", "ACTION_CREATE_CALENDAR_EVENT", "ACTION_DIAL", "ACTION_OPEN_URL", "ACTION_SHARE_LOCATION", "ACTION_VIEW_LOCATION", "ACTION_OPEN_URL_IN_WEBVIEW", "ACTION_COMPOSE", ] }
Yêu cầu sẽ trả về một phản hồi hoặc một lỗi.
Hệ thống chỉ trả về phản hồi thành công nếu MSISDN (số điện thoại) đã kết nối với dịch vụ RCS trong vòng 24 giờ qua.
Sau đây là những nguyên nhân gây ra lỗi 404:
Người dùng không thể liên lạc được qua RBM – ví dụ: 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ọ.
Tạo hàng đợi ngoại tuyến
Tin nhắn sẽ được đưa vào hàng đợi tối đa 30 ngày và được gửi khi thiết bị có kết nối mạng trở lại. Để đảm bảo việc phân phối, thiết bị phải cho thấy dấu hiệu của hoạt động RCS trong vòng 24 giờ kể từ khi tin nhắn được gửi. Điều này có nghĩa là ngay cả khi một thiết bị không có kết nối mạng trong một khoảng thời gian dài (tối đa 30 ngày), các thông báo trong hàng đợi vẫn sẽ được phân phối khi kết nối lại, miễn là cửa sổ hoạt động 24 giờ được đáp ứng tại thời điểm gửi.
Kiểm tra chức năng hàng loạt
Để ước tính số lượng người dùng có thể tiếp cận được bằng RBM, hãy kiểm tra tính năng hàng loạt. Tính năng kiểm tra hàng loạt cho biết liệu có thể liên lạc được với một số điện thoại hay không, nhưng không cho biết số điện thoại đó hỗ trợ những tính năng nào.
Đối với mỗi lần kiểm tra tính năng hàng loạt, bạn phải cung cấp 500 đến 10.000 số điện thoại duy nhất. Để kiểm tra thêm số điện thoại, 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 lệnh gọi mỗi phút. Sử dụng Tập lệnh kiểm tra chức năng hàng loạt để 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 chức 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 trực tiếp yêu cầu các tính năng của từng thiết bị. Do đó, kết quả có thể không phải là kết quả mới nhất.
Tính năng kiểm tra chức năng hàng loạt sẽ trả về danh sách các số mà trợ lý của bạn có thể liên hệ được trên các nhà mạng nơi trợ lý được triển khai, cũng như số liệu ước tính về tổng số người dùng có thể liên hệ được trên tất cả các nhà mạng. Xem Phản hồi về việc kiểm tra chức 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 của quy trình kiểm tra hàng loạt bao gồm danh sách số điện thoại có thể liên lạc ngay trên các nhà mạng đã ra mắt của đại lý (reachableUsers
), nhưng phản hồi cũng bao gồm hai giá trị có thể giúp bạn ước tính tổng số người dùng có thể liên lạc được 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 quy trình kiểm tra tính năng hàng loạt, RBM sẽ lấy mẫu ngẫu nhiên khoảng 75% số điện thoại đó để kiểm tra tất cả nhà mạng (được báo cáo trong totalRandomSampleUserCount
). RBM cũng trả về số lượng số điện thoại mà RBM có thể liên hệ được 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ủa bạn có thể liên hệ được nếu được ra mắt trên tất cả nhà mạng.
Ví dụ: nếu bạn chỉ định 5.000 số điện thoại trong quy trình kiểm tra tính năng hàng loạt và RBM lấy mẫu ngẫu nhiên khoảng 75% số điện thoại được chỉ định, thì totalRandomSampleUserCount
có thể là 3750
. Nếu reachableRandomSampleUserCount
là 3000
, thì 80% số được lấy mẫu đề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ử 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 tác động của việc lấy mẫu ngẫu nhiên, hãy chạy quy trình kiểm tra chức năng hàng loạt với số lượng lớn số điện thoại hơn. Bạn cũng có thể kiểm tra nhiều lần bằng cùng một lô số rồi 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 chức năng hàng loạt
Mã sau đây gửi một yêu cầu kiểm tra chức năng hàng loạt và chờ phản hồi. Để biết các tuỳ chọn đị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 duy nhấ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 về việc kiểm tra chức năng hàng loạt
Sau khi chạy quy trình kiểm tra chức năng hàng loạt, 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 lạc được trên các nhà mạng đã ra mắt của đại lý. |
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ể truy cập được bằng RBM trên tất cả các nhà mạng, bất kể tác nhân được chạy trên nhà mạng nào. Số liệu này được dùng để cung cấp thông tin ước tính sơ bộ về tổng số người dùng có thể tiếp cận trên tất cả các nhà mạng. |
Công cụ: Tập lệnh kiểm tra chức năng hàng loạt
Tập lệnh kiểm tra chức năng Buck (Đăng nhập để tải xuống)thực hiện kiểm tra chức 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 của MSISDN và sử dụng SDK RBM để kiểm tra chức năng của mọi thiết bị được liệt kê.
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 được khoảng 1.000 QPS, nhưng tổng số QPS 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 để kiểm tra chức năng hàng loạt, hãy làm như sau:
- Đường dẫn đến tệp CSV có MSISDN để thực hiện kiểm tra chức 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 các 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 việc kiểm tra chức năng hàng loạt, hãy làm như sau:
- Tải xuống và giải nén Tập lệnh kiểm tra chức 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 chức năng hàng loạt
Để 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 các 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 Business Messaging. welcome-bot
INPUT_FILE Đường dẫn đến tệp CSV đầu vào. input.csv
OUTPUT_FILE Đường dẫn đến tệp CSV đầu ra. output.csv
NUM_OF_THREADS Số luồng dành riêng cho việc kiểm tra chức năng. 500
START_INDEX Không bắt buộc. Giá trị trong tệp CSV để bắt đầu chạy quy trình kiểm tra. 5
END_INDEX Không bắt buộc. Giá trị trong tệp CSV để kết thúc các lần kiểm tra sau đó. 500
Khi tập lệnh hoàn tất, hãy mở tệp CSV đầu ra để xem kết quả.