Чтобы проверить, поддерживает ли устройство пользователя RCS и способно ли оно взаимодействовать с агентом RBM, вы можете запросить возможности устройства. Определение того, какие функции поддерживает устройство, если таковые имеются, позволяет вашему агенту адаптировать разговор к возможностям устройства и избегать взаимодействия, которые пользователю сложно или невозможно выполнить.
Если устройство пользователя вообще не способно получать сообщения RCS, вы можете общаться с пользователем через другие службы, например SMS.
Отправить проверку возможностей
Следующий код отправляет проверку возможностей и ожидает ответа. Параметры форматирования и значений см. в разделе getCapabilities
.
КУЛЬ
curl -X GET "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/capabilities?requestId=REQUEST_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('../libs/rbm_api_helper'); // Send a capability check to the device rbmApiHelper.checkCapability('+12223334444', function(response) { // Print capabilities of the device console.log(response); });Этот код представляет собой отрывок из примера агента RBM .
Джава
import com.google.rbm.samples.lib.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 .
Питон
# 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 .
С#
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
). Разделив reachableRandomSampleUserCount
на totalRandomSampleUserCount
, вы можете оценить процент номеров, которые ваш агент мог бы охватить, если бы он был запущен на всех операторах связи.
Например, если вы укажете 5000 телефонных номеров при массовой проверке возможностей, а RBM случайным образом выберет ~75% указанных номеров, totalRandomSampleUserCount
может быть 3750
. Если reachableRandomSampleUserCount
равен 3000
, то 80% выбранных чисел были достижимы.
Тестирование случайных выборок может привести к процентным различиям. Чтобы учесть влияние случайной выборки, запустите массовую проверку возможностей с большим количеством телефонных номеров. Вы также можете выполнять проверки с одними и теми же наборами чисел несколько раз, а затем усреднять результаты, чтобы нормализовать поведение случайной выборки.
Отправить массовую проверку возможностей
Следующий код отправляет массовую проверку возможностей и ожидает ответа. Параметры форматирования и значений см. в разделе users.batchGet
.
Номера телефонов должны быть в формате E.164. Например, «+12223334444».
КУЛЬ
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/users:batchGet \ -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('../libs/rbm_api_helper'); // 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 .
Джава
import com.google.rbm.samples.lib.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 .
Питон
# 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 .
С#
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Этот код использует образец агента RBM .({"+12223334444", "+12223334444"}));
Ответ на массовую проверку возможностей
После выполнения массовой проверки возможностей RBM возвращает ответ в формате JSON.
{ "reachableUsers": [ "PHONE_NUMBER" ], "totalRandomSampleUserCount": "COUNT_OF_SAMPLE", "reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE" }
Поле | Описание |
---|---|
reachableUsers | Список доступных пользователей на текущих операторах связи агента. |
totalRandomSampleUserCount | Подсчет случайной выборки указанных чисел. Обычно ~75% от указанных чисел. |
reachableRandomSampleUserCount | Количество номеров из случайной выборки, доступных для RBM для всех операторов связи, независимо от операторов связи, запущенных агентом в данный момент. |
Инструмент: сценарий массовой проверки возможностей
Сценарий массовой проверки возможностейСценарий проверки возможностей Buck ( войдите, чтобы загрузить )выполняет массовую проверку возможностей, используя файлы CSV в качестве входных и выходных форматов. Сценарий анализирует CSV-файл MSISDN и использует RBM SDK для проверки возможностей каждого перечисленного устройства.
Виртуальная машина с 2 ЦП и 4 ГБ ОЗУ, на которой выполняется сценарий с 500 потоками, может достигать примерно 1 000 запросов в секунду, но общее количество запросов в секунду зависит от используемой машины, страны устройств, региональной конфигурации вашего агента и используемой конечной точки API.
Предварительные условия
Прежде чем использовать этот инструмент для массовой проверки возможностей, получите следующее:
- Путь к CSV-файлу с MSISDN для проверки возможностей.
- Путь к ключу сервисной учетной записи вашего агента на вашей машине разработки.
Кроме того, на вашем компьютере разработки должно быть установлено следующее программное обеспечение:
- Apache Maven 3.3.9 или более поздней версии
- Ява 8
Настраивать
- На компьютере разработки загрузите и распакуйте сценарий массовой проверки возможностейСценарий массовой проверки возможностей ( войдите, чтобы загрузить ).
- Перейдите в корневой каталог сценария.
- Переименуйте ключ учетной записи службы в «rbm-agent-service-account-credentials.json» и переместите ключ учетной записи службы в каталог «src/main/resources».
Запустите массовую проверку
- В терминале перейдите в корневой каталог сценария.
Выполните следующие команды:
export MAVEN_OPTS="-Xms1024m -Xmx3000m"
mvn compile && mvn exec:java -Dexec.args="INPUT_FILE OUTPUT_FILE NUM_OF_THREADS START_INDEX END_INDEX"
Замените переменные значениями, которые вы определили.
Заменять С Пример INPUT_FILE Путь к входному файлу CSV. input.csv
OUTPUT_FILE Путь к выходному файлу CSV. output.csv
NUM_OF_THREADS Количество потоков, выделяемых для проверки возможностей. 500
START_INDEX Необязательный. Значение в CSV-файле, по которому следует начать проверку. 5
END_INDEX Необязательный. Значение в CSV-файле, после которого завершаются проверки. 500
Когда сценарий завершится, откройте выходной CSV-файл, чтобы просмотреть результаты.