Kiểm tra khả năng

Để 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);
});
Mã này là một phần trích dẫn từ trình đại diện mẫu RBM.

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");
Mã này là một phần trích dẫn từ trình đại diện mẫu RBM.

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')
Mã này là trích đoạn từ trình đại diện mẫu RBM.

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");
Mã này là trích đoạn từ trình đại diện mẫu RBM.

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 reachableRandomSampleUserCount3000, 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);
});
Mã này sử dụng trình đại diện mẫu RBM.

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"));
Mã này sử dụng trình đại diện mẫu RBM.

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'])
Mã này sử dụng trình đại diện mẫu RBM.

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"}));
Mã này sử dụng trình đại diện mẫu RBM.

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:

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:

  1. 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).
  2. 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:

  1. 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.
  2. 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
  3. Khi tập lệnh hoàn tất, hãy mở tệp CSV đầu ra để xem kết quả.