Verificações de capacidade

Para verificar se o dispositivo de um usuário é compatível com RCS e consegue se comunicar com um agente RBM, solicite os recursos do dispositivo. Identificar quais recursos um dispositivo oferece suporte, se houver, permite que o agente adapte a conversa de acordo com as capacidades do dispositivo e evite apresentar interações difíceis ou impossíveis para o usuário realizar.

Se o dispositivo de um usuário não for capaz de receber mensagens RCS, você pode se comunicar com o usuário por outros serviços, como SMS.

Enviar uma verificação de capacidade

O código a seguir envia uma verificação de recurso e aguarda uma resposta. Para opções de formatação e valor, consulte getCapabilities.

cURL

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);
});
Esse código é um trecho de um agente de amostra do RBM.

Java

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");
Esse código é um trecho de um agente de amostra do 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')
Esse código é um trecho de um agente de amostra do 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");
Esse código é um trecho de um agente de amostra do RBM.

Resposta de recurso

Depois de executar uma verificação de capacidade, a plataforma RBM retorna uma lista formatada em JSON de recursos com suporte no dispositivo especificado.

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

Se você enviar uma verificação de capacidade a um usuário que não pode ser acessado pelo RBM, por exemplo, se o dispositivo não oferecer suporte a RCS, a plataforma do RBM vai retornar um erro 404.

Se você enviar uma verificação de recursos para um usuário RCS em uma rede em que seu agente ainda não tenha sido iniciado, a plataforma RBM retornará um erro 403.

Verificações de capacidade em massa

Para estimar o número de usuários que podem ser alcançados pelo RBM, faça uma verificação de capacidade em massa. As verificações em massa indicam se um número de telefone pode ser acessado, mas não quais recursos podem ser usados.

É possível especificar até 10.000 números de telefone por verificação de capacidade em massa. Para conferir mais números, faça várias verificações. Use o Script de verificação de recursos em massa para utilizar arquivos CSV como formato de entrada.

As verificações de capacidade em massa têm um máximo de 600 consultas por minuto (QPM).

As verificações de capacidade em massa retornam uma lista dos números que seu agente pode alcançar usando as operadoras lançadas atualmente, bem como estimativas do número total de usuários acessíveis em todas as operadoras. Consulte Resposta de verificação de capacidade em massa.

Estimar o total de usuários acessíveis

Embora as respostas de verificação em massa incluam uma lista de números de telefone que podem ser acessados imediatamente pelas operadoras lançadas do seu agente (reachableUsers), as respostas também incluem dois valores que podem ajudar a estimar o número total de usuários acessíveis em todas as operadoras.

Quando o agente executa uma verificação de capacidade em massa de mais de 500 números de telefone, o RBM analisa aleatoriamente cerca de 75% desses números para verificar todas as operadoras (informados em totalRandomSampleUserCount). O RBM também retorna a contagem de números acessíveis do RBM da amostra aleatória, independentemente do status de lançamento da operadora (reachableRandomSampleUserCount). Ao dividir reachableRandomSampleUserCount por totalRandomSampleUserCount, é possível estimar a porcentagem de números que seu agente poderia alcançar se fosse lançado nas operadoras.

Por exemplo, se você especificar 5.000 números de telefone na verificação de capacidade em massa, e o RBM fizer uma amostragem aleatória de cerca de 75% dos números especificados, totalRandomSampleUserCount poderá ser 3750. Se reachableRandomSampleUserCount for 3000, 80% dos números da amostra poderão ser alcançados.

Testar amostras aleatórias pode levar a variações nas porcentagens. Para considerar os efeitos da amostragem aleatória, execute verificações em massa de recursos com quantidades maiores de números de telefone. Também é possível realizar verificações com os mesmos lotes de números várias vezes e, em seguida, calcular a média dos resultados para normalizar o comportamento da amostragem aleatória.

Enviar uma verificação de capacidade em massa

O código a seguir envia uma verificação de capacidade em massa e aguarda uma resposta. Para opções de formatação e valor, consulte users.batchGet.

Os números de telefone precisam estar no formato E.164. Por exemplo, "+12223334444".

cURL

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);
});
Esse código usa o agente de amostra do RBM (em inglês).

Java

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"));
Esse código usa o agente de amostra do RBM (em inglês).

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'])
Esse código usa o agente de amostra do RBM (em inglês).

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"}));
Esse código usa o agente de amostra do RBM (em inglês).

Resposta da verificação de capacidade em massa

Após executar uma verificação de capacidade em massa, o RBM retorna uma resposta formatada em JSON.

{
  "reachableUsers": [
    "PHONE_NUMBER"
  ],
  "totalRandomSampleUserCount": "COUNT_OF_SAMPLE",
  "reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE"
}
Campo Descrição
reachableUsers uma lista de usuários acessíveis nas operadoras atualmente lançadas do agente.
totalRandomSampleUserCount A contagem de uma amostra aleatória de números especificados. Normalmente, cerca de 75% dos números especificados.
reachableRandomSampleUserCount A contagem de números da amostra aleatória que podem ser acessados pelo RBM em todas as operadoras, independentemente das operadoras iniciadas do agente no momento.

Ferramenta: script de verificação de capacidade em massa

O Script de verificação de recursos Buck (faça login para fazer o download) realiza verificações de recursos em massa usando arquivos CSV como formatos de entrada e saída. O script analisa o arquivo CSV de MSISDNs e usa o SDK do RBM para verificar os recursos de cada dispositivo listado.

Uma máquina virtual de 2 CPUs e 4 GB de RAM executando o script com 500 linhas de execução pode alcançar aproximadamente 1.000 QPS, mas o QPS geral depende da máquina usada, do país dos dispositivos, da configuração regional do agente e do endpoint da API usado.

Pré-requisitos

Antes de usar a ferramenta para executar uma verificação de capacidade em massa, veja o seguinte:

  • O caminho para um arquivo CSV com MSISDNs para executar verificações de capacidade
  • O caminho para a chave da conta de serviço do agente na máquina de desenvolvimento

Além disso, você precisa do seguinte software instalado na sua máquina de desenvolvimento:

Configurar

  1. Na sua máquina de desenvolvimento, faça o download e extraia o Script de verificação de recursos em massa (faça login para fazer o download).
  2. Acesse o diretório raiz do script.
  3. Renomeie a chave da conta de serviço como "rbm-agent-service-account-credentials.json" e mova-a para o diretório "src/main/resources".

Executar uma verificação em massa

  1. Em um terminal, navegue até o diretório raiz do script.
  2. Execute os comandos a seguir:

    export MAVEN_OPTS="-Xms1024m -Xmx3000m"
    mvn compile && mvn exec:java -Dexec.args="INPUT_FILE OUTPUT_FILE NUM_OF_THREADS START_INDEX END_INDEX"
    

    Substitua as variáveis pelos valores que você identificou.

    Substituir Por Exemplo
    INPUT_FILE O caminho para o arquivo CSV de entrada. input.csv
    OUTPUT_FILE O caminho para o arquivo CSV de saída. output.csv
    NUM_OF_THREADS O número de linhas de execução a serem dedicadas a verificações de capacidade. 500
    START_INDEX Opcional. O valor no arquivo CSV para começar a executar as verificações. 5
    END_INDEX Opcional. O valor no arquivo CSV para finalizar as verificações. 500
  3. Quando o script for concluído, abra o arquivo CSV de saída para ver os resultados.