功能检查

检查用户的设备是否支持 RCS,以及能否与 RBM 代理,您可以请求设备的功能。识别哪些特征 允许客服人员定制对话 并避免呈现 使用户难以或不可能完成

如果用户的设备根本无法接收 RCS 信息,您可以 通过其他服务(如短信)与用户通信。

发送功能检查

以下代码会发送功能检查并等待响应。对于 格式和值选项,请参阅 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);
});
此代码摘自 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");
此代码摘自 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')
此代码摘自 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");
此代码摘自 RBM 示例代理

功能响应

运行功能检查后,RBM 平台会返回 JSON 格式的列表 的功能列表。

{
  "features": [
    "REVOCATION",
    "RICHCARD_STANDALONE",
    "RICHCARD_CAROUSEL",
    "ACTION_CREATE_CALENDAR_EVENT",
    "ACTION_DIAL",
    "ACTION_OPEN_URL",
    "ACTION_SHARE_LOCATION",
    "ACTION_VIEW_LOCATION",
  ]
}

如果您向 RBM 无法访问的用户发送功能检查,例如, 如果用户的设备不支持 RCS,RBM 平台会返回 404 错误。

如果您向以下网络中的 RCS 用户发送功能检查: 您的代理尚未发布,RBM 平台会返回 403 错误。

批量功能检查

要估算 RBM 可覆盖的用户数,请进行批量功能检查。批量 检查指明某个电话号码是否可以联系到,但不指明 电话号码支持。

每次进行功能批量检查时,您最多可以指定 10,000 个电话号码。检查 请执行多次检查。使用批量操作功能检查 脚本使用 CSV 文件作为输入格式。

批量功能检查每分钟最多可以执行 600 次查询 (QPM)。

批量功能检查会返回代理可覆盖的号码列表 以及发布该服务的运营商的 覆盖所有运营商的用户请参阅批量功能检查响应

估算可覆盖的用户总数

批量检查回复包含电话号码列表 您代理的已发布运营商可立即联系这些联系人 (reachableUsers),则回答还包含两个值,可帮助您估算 所有运营商的可覆盖用户总数。

当代理对超过 500 个电话号码进行批量功能检查时, RBM 会从这些号码中随机抽取大约 75% 的样本,以检查所有运营商 (在 totalRandomSampleUserCount 中报告)。RBM 还会返回 随机样本中的 RBM 可到达数字,与运营商无关 状态 (reachableRandomSampleUserCount)。除以 reachableRandomSampleUserCounttotalRandomSampleUserCount,您可以 估算代理在 所有运营商。

例如,如果您在批量功能检查中指定 5,000 个电话号码, RBM 会从指定数字的大约 75% 中随机采样 totalRandomSampleUserCount 可以是 3750。如果reachableRandomSampleUserCount3000,那么 80% 的抽样数据是覆盖率。

测试随机样本可能会导致百分比出现方差。要考虑到 随机采样的影响,使用大量数据进行批量能力检查, 电话号码。您可能还对相同批次的数字执行检查 然后对结果求平均值,以对随机采样进行归一化 行为

批量发送功能检查

以下代码会发送批量功能检查并等待响应。对于 格式和值选项,请参阅 users.batchGet

电话号码必须采用 E.164 格式。例如,“+12223334444”。

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);
});
此代码使用 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"));
此代码使用 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'])
此代码使用 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"}));
此代码使用 RBM 示例 代理

批量功能检查响应

运行批量功能检查后,RBM 会返回 JSON 格式的响应。

{
  "reachableUsers": [
    "PHONE_NUMBER"
  ],
  "totalRandomSampleUserCount": "COUNT_OF_SAMPLE",
  "reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE"
}
字段 说明
reachableUsers 代理上可覆盖的用户的列表 新运营商
totalRandomSampleUserCount 指定的 数字。通常约为指定数字的 75%。
reachableRandomSampleUserCount 随机数字中的 所有运营商均可覆盖 RBM 访问的样本, 发布代理的运营商

工具:批量操作功能检查脚本

通过 Buck 功能检查脚本(登录到 下载) 使用 CSV 文件作为输入和输出格式来执行批量功能检查。 脚本解析 MSISDN 的 CSV 文件并使用 RBM SDK 检查所列每台设备的功能。

具有 2 个 CPU 和 4GB RAM 的虚拟机,可运行包含 500 个线程的脚本 每秒大约可达到 1K QPS,但总体 QPS 取决于使用的机器、 设备所在的国家/地区、代理的区域配置以及 API 端点。

前提条件

在使用该工具执行批量功能检查之前,请先获取以下内容:

  • 指向包含 MSISDN 以执行功能检查的 CSV 文件的路径
  • 开发机器上代理服务账号密钥的路径

此外,您需要在开发环境中安装以下软件 机器:

设置

  1. 在开发机器上,下载并解压缩 批量操作功能检查脚本(登录 下载)。
  2. 按照自述文件中的步骤操作。

运行批量检查

  1. 在终端中,导航到脚本的根目录。
  2. 运行以下命令:

    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"
    

    将变量替换为您确定的值。

    替换 示例
    AGENT_ID RCS Business Messaging 代理的 ID welcome-bot
    INPUT_FILE 输入 CSV 文件的路径。 input.csv
    OUTPUT_FILE 输出 CSV 文件的路径。 output.csv
    NUM_OF_THREADS 专门处理的线程数 功能检查。 500
    START_INDEX 可选。CSV 文件中的 开始运行检查。 5
    END_INDEX 可选。CSV 文件中的 之后结束检查。 500
  3. 脚本运行完毕后,打开输出 CSV 文件以查看结果。