功能检查

如需检查用户的设备是否支持 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 错误。

批量 capability 检查

如需估算可通过 RBM 触达的用户数量,请执行批量功能检查。批量检查可指明电话号码是否可拨打,但无法指明电话号码支持哪些功能。

每次批量功能检查时,您最多可以指定 1 万个电话号码。如需检查更多号码,请执行多次检查。使用批量操作功能检查脚本将 CSV 文件用作输入格式。

批量功能检查的每分钟查询次数 (QPM) 上限为 600 次。

批量功能检查会返回您的客服人员在已推出客服人员的运营商中可覆盖的号码列表,以及所有运营商中可覆盖的用户总数的估算值。请参阅批量功能检查响应

估算可覆盖的用户总数

虽然批量检查响应包含代理已推出的运营商 (reachableUsers) 上可立即联系到的电话号码列表,但响应中还包含两个值,可帮助您估算所有运营商中可联系到的用户总数。

当您的客服人员对 500 个以上的电话号码执行批量功能检查时,RBM 会随机抽取其中约 75% 的号码来检查所有运营商(在 totalRandomSampleUserCount 中报告)。无论运营商发布状态如何,RBM 还会返回随机抽样中可通过 RBM 覆盖的号码数量 (reachableRandomSampleUserCount)。通过将 reachableRandomSampleUserCount 除以 totalRandomSampleUserCount,您可以估算如果您的客服人员在所有运营商处发布,可覆盖的号码所占的百分比。

例如,如果您在批量功能检查中指定 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 示例代理

批量 capability 检查响应

运行批量功能检查后,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 个线程的脚本,则可以达到大约 1,000 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 文件查看结果。