Проверка возможностей

Чтобы проверить, поддерживает ли устройство пользователя RCS и способно ли оно взаимодействовать с агентом RBM, вы можете запросить возможности устройства. Определение того, какие функции поддерживает устройство, если таковые имеются, позволяет вашему агенту адаптировать разговор к возможностям устройства и избегать взаимодействия, которые пользователю сложно или невозможно выполнить.

Если устройство пользователя вообще не способно принимать сообщения RCS, вы можете общаться с пользователем через другие службы, например SMS/MMS.

Проверьте возможности устройства

Следующий код отправляет проверку возможностей и ожидает ответа. Параметры форматирования и значений см. в разделе getCapabilities .

КУЛЬ

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 .

Ява

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 .

Питон

# 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",
    "ACTION_OPEN_URL_IN_WEBVIEW",
    "ACTION_COMPOSE",
  ]
}

Запрос возвращает либо ответ, либо ошибку.

Успешный ответ возвращается только в том случае, если MSISDN (номер телефона) подключался к службе RCS в течение последних 24 часов.

Вот что вызывает ошибку 404:

  • Пользователь недоступен для RBM, например, если его устройство не поддерживает RCS.

  • У пользователя есть RCS, но ваш агент не запущен в его мобильной сети.

Автономная очередь

Сообщения помещаются в очередь на срок до 30 дней и доставляются, когда устройство снова подключается к сети. Для обеспечения доставки на устройстве должны быть обнаружены признаки активности RCS в течение 24 часов с момента отправки сообщения. Это означает, что даже если устройство отключится от сети на длительный период (до 30 дней), сообщения в очереди все равно будут доставлены при повторном подключении, если во время отправки было соблюдено 24-часовое окно активности.

Массовая проверка возможностей

Чтобы оценить количество пользователей, доступных для RBM, выполните массовую проверку возможностей. Массовые проверки показывают, доступен ли номер телефона, но не определяют, какие функции он поддерживает.

Для каждой массовой проверки возможностей необходимо предоставить 500–10 000 уникальных номеров телефонов. Чтобы проверить больше номеров, выполните несколько проверок. Вы можете совершать до 600 звонков в минуту. Используйте сценарий массовой проверки возможностей , чтобы использовать файлы CSV в качестве входного формата. Массовые проверки считываются из кэша возможностей, который автоматически обновляется клиентами с помощью RCS. Агенты не запрашивают возможности каждого устройства напрямую. По этой причине результаты могут быть неактуальными.

Массовые проверки возможностей возвращают список номеров, с которыми может связаться ваш агент у операторов связи, где он запущен, а также оценки общего количества доступных пользователей для всех операторов связи. См. ответ на массовую проверку возможностей .

Оцените общее количество доступных пользователей

Хотя ответы на массовую проверку включают список телефонных номеров, которые сразу доступны для операторов связи, запущенных вашим агентом ( reachableUsers ), ответы также включают два значения, которые могут помочь вам оценить общее количество доступных пользователей для всех операторов связи.

Как это работает

Когда ваш агент выполняет массовую проверку возможностей, RBM случайным образом выбирает ~75% этих чисел для проверки всех операторов связи (сообщается в totalRandomSampleUserCount ). RBM также возвращает количество доступных для RBM чисел из случайной выборки, независимо от статуса запуска оператора связи ( reachableRandomSampleUserCount ). Разделив reachableRandomSampleUserCount на totalRandomSampleUserCount , вы можете оценить процент номеров, которые ваш агент мог бы охватить, если бы он был запущен на всех операторах связи.

Например, если вы укажете 5000 телефонных номеров при массовой проверке возможностей, а RBM случайным образом выберет ~75% указанных номеров, totalRandomSampleUserCount может быть 3750 . Если reachableRandomSampleUserCount равен 3000 , то 80% выбранных чисел были достижимы.

Учет случайной выборки

Тестирование случайных выборок может привести к процентным различиям. Чтобы учесть влияние случайной выборки, запустите массовую проверку возможностей с большим количеством телефонных номеров. Вы также можете выполнять проверки с одними и теми же наборами чисел несколько раз, а затем усреднять результаты, чтобы нормализовать поведение случайной выборки.

Отправить массовую проверку возможностей

Следующий код отправляет массовую проверку возможностей и ожидает ответа. Параметры форматирования и значений см. в разделе users.batchGet .

Номера телефонов должны быть в формате E.164 (например, «+12223334444»), а список должен содержать от 500 до 10 000 уникальных телефонных номеров.

КУЛЬ

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 .

Ява

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 .

Питон

# 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({"+12223334444", "+12223334444"}));
В этом коде используется образец агента RBM .

Ответ на массовую проверку возможностей

После выполнения массовой проверки возможностей 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 для проверки возможностей.
  • Путь к ключу сервисной учетной записи вашего агента на вашей машине разработки.

Кроме того, на вашем компьютере разработки должно быть установлено следующее программное обеспечение:

Настраивать

Чтобы настроить компьютер разработки для массовой проверки возможностей, выполните следующие действия:

  1. Загрузите и извлекитеСценарий массовой проверки возможностей ( войдите, чтобы скачать ).
  2. Следуйте инструкциям в README.

Запустите массовую проверку возможностей

Чтобы запустить массовую проверку, выполните следующие действия:

  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. 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-файл, чтобы просмотреть результаты.