检查用户的设备是否支持 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); });
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");
功能响应
运行功能检查后,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
)。除以
reachableRandomSampleUserCount
的totalRandomSampleUserCount
,您可以
估算代理在
所有运营商。
例如,如果您在批量功能检查中指定 5,000 个电话号码,
RBM 会从指定数字的大约 75% 中随机采样
totalRandomSampleUserCount
可以是 3750
。如果reachableRandomSampleUserCount
为 3000
,那么 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); });
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"}));
批量功能检查响应
运行批量功能检查后,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 文件的路径
- 开发机器上代理服务账号密钥的路径
此外,您需要在开发环境中安装以下软件 机器:
- Apache Maven 3.3.9 或更高版本
- Java 8
设置
- 在开发机器上,下载并解压缩 批量操作功能检查脚本(登录 下载)。
- 按照自述文件中的步骤操作。
运行批量检查
- 在终端中,导航到脚本的根目录。
运行以下命令:
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
脚本运行完毕后,打开输出 CSV 文件以查看结果。