Vérifications des capacités

Pour vérifier si l'appareil d'un utilisateur est compatible avec les RCS et peut communiquer avec un agent RBM, vous pouvez demander les fonctionnalités de l'appareil. Identifier les fonctionnalités un appareil compatible, le cas échéant, permet à votre agent d'adapter la conversation fonctionnalités de l'appareil et éviter de présenter des interactions difficiles, voire impossibles à effectuer pour l'utilisateur.

Si l'appareil d'un utilisateur n'est pas du tout en mesure de recevoir les messages RCS, vous pouvez communiquer avec l'utilisateur par le biais d'autres services, tels que les SMS.

Envoyer une vérification des capacités

Le code suivant envoie une vérification des capacités et attend une réponse. Pour de mise en forme et de valeur, consultez 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);
});
Ce code est un extrait d'un exemple d'agent 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");
Ce code est un extrait d'un exemple d'agent 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')
Ce code est un extrait d'un exemple d'agent 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");
Ce code est un extrait d'un exemple d'agent RBM.

Réponse de capacité

Après avoir exécuté une vérification des capacités, la plate-forme RBM renvoie une liste au format JSON prises en charge par l'appareil spécifié.

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

Si vous envoyez une vérification des capacités à un utilisateur qui n'est pas joignable par RBM, par exemple, si son appareil n'est pas compatible avec le RCS, la plate-forme RBM renvoie une erreur 404.

Si vous envoyez une vérification de capacité à un utilisateur RCS sur un réseau sur lequel votre agent n'est pas encore lancé, la plate-forme RBM renvoie une erreur 403.

Vérifications groupées des fonctionnalités

Pour estimer le nombre d'utilisateurs joignables par RBM, effectuez une vérification groupée des capacités. Groupée les vérifications indiquent si un numéro de téléphone est joignable, mais pas les fonctionnalités dont un assistance téléphonique.

Vous pouvez indiquer jusqu'à 10 000 numéros de téléphone par contrôle de capacité groupée. Pour vérifier plus de chiffres, effectuez plusieurs vérifications. Utilisez la fonctionnalité de vérification groupée des capacités Script pour utiliser des fichiers CSV comme format de saisie.

Les vérifications de capacité groupées autorisent un maximum de 600 requêtes par minute (RPM).

Les vérifications groupées des fonctionnalités renvoient une liste des numéros sur lesquels votre agent peut atteindre des opérateurs sur lesquels elle est disponible, ainsi que des estimations du nombre total que vous puissiez toucher les utilisateurs, quel que soit l'opérateur. Consultez la section Réponse de la vérification des capacités groupées.

Estimer le nombre total d'utilisateurs atteignables

Alors que les réponses de la vérification groupée incluent une liste de numéros de téléphone accessibles immédiatement par les opérateurs lancés par votre agent. (reachableUsers), les réponses incluent également deux valeurs qui peuvent vous aider à estimer le nombre total d'utilisateurs atteignables (tous opérateurs confondus).

Lorsque votre agent effectue une vérification groupée de plus de 500 numéros de téléphone, RBM échantillonne aléatoirement environ 75% de ces numéros pour vérifier tous les opérateurs (signalé dans totalRandomSampleUserCount). RBM renvoie également le nombre de Nombres joignables par RBM issus de l'échantillon aléatoire, quel que soit le lancement par l'opérateur (reachableRandomSampleUserCount). En divisant reachableRandomSampleUserCount d'ici le totalRandomSampleUserCount, vous pouvez Estimer le pourcentage d'utilisateurs que votre agent pourrait atteindre s'il était lancé tous les opérateurs.

Par exemple, si vous spécifiez 5 000 numéros de téléphone dans la vérification des capacités groupées, et RBM échantillonnent aléatoirement environ 75% des nombres spécifiés. totalRandomSampleUserCount peut être 3750. Si reachableRandomSampleUserCount est 3000, cela signifie que 80% des nombres échantillonnés étaient accessibles.

Le test d'échantillons aléatoires peut entraîner des écarts en pourcentage. Pour prendre en compte de l'échantillonnage aléatoire, effectuez des vérifications de capacité groupées avec de plus grandes quantités numéros de téléphone. Vous pouvez également effectuer des vérifications avec les mêmes lots de numéros plusieurs fois, puis calculer la moyenne des résultats pour normaliser l'échantillonnage aléatoire. comportemental.

Envoyer une vérification des capacités groupées

Le code suivant envoie une vérification des capacités groupées et attend une réponse. Pour de mise en forme et de valeur, consultez users.batchGet

Les numéros de téléphone doivent être au format E.164. Exemple : "+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);
});
Ce code utilise l'exemple RBM à un agent.

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"));
Ce code utilise l'exemple RBM à un agent.

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'])
Ce code utilise l'agent exemple 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"}));
Ce code utilise l'exemple RBM à un agent.

Réponse de la vérification des capacités groupées

Après avoir exécuté une vérification des capacités groupées, RBM renvoie une réponse au format JSON.

{
  "reachableUsers": [
    "PHONE_NUMBER"
  ],
  "totalRandomSampleUserCount": "COUNT_OF_SAMPLE",
  "reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE"
}
Champ Description
reachableUsers La liste des utilisateurs accessibles sur le réseau les opérateurs lancés.
totalRandomSampleUserCount Nombre d'un échantillon aléatoire des de chiffres. Généralement environ 75% des nombres spécifiés.
reachableRandomSampleUserCount Nombre de nombres aléatoires qui soient accessibles par RBM via tous les opérateurs, quel que soit les opérateurs avec lesquels l'agent est lancé.

Outil: script de vérification groupée des fonctionnalités

La Script de vérification des capacités Buck (Connectez-vous à télécharger) effectue des vérifications groupées des capacités à l'aide de fichiers CSV comme formats d'entrée et de sortie. Le script analyse le fichier CSV des fichiers MSISDN et utilise le RBM SDK pour vérifier les fonctionnalités de chaque appareil listé.

Machine virtuelle dotée de deux processeurs et de 4 Go de RAM exécutant le script avec 500 threads peut atteindre environ 1 000 RPS, mais le nombre total de RPS dépend de la machine utilisée, du le pays des appareils, la configuration régionale de votre agent et l'API point de terminaison utilisé.

Prérequis

Avant d'utiliser l'outil pour effectuer une vérification des capacités groupées, procurez-vous les éléments suivants:

  • Chemin d'accès à un fichier CSV avec des MSISDN pour effectuer des vérifications de capacité sur
  • Chemin d'accès à la clé du compte de service de votre agent sur votre ordinateur de développement

De plus, les logiciels suivants doivent être installés sur votre machine:

Configurer

  1. Sur votre ordinateur de développement, téléchargez et extrayez le fichier Script de vérification groupée des fonctionnalités (Connectez-vous à télécharger).
  2. Suivez la procédure décrite dans le fichier README.

Effectuer une vérification groupée

  1. Dans un terminal, accédez au répertoire racine du script.
  2. Exécutez les commandes suivantes :

    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"

    Remplacez les variables par les valeurs que vous avez identifiées.

    Remplacer Par Exemple
    AGENT_ID ID de l'agent RCS Business Messaging welcome-bot
    INPUT_FILE Chemin d'accès au fichier CSV d'entrée. input.csv
    OUTPUT_FILE Chemin d'accès au fichier CSV de sortie. output.csv
    NUM_OF_THREADS Nombre de threads à dédier des capacités. 500
    START_INDEX Facultatif. La valeur du fichier CSV à commencer à effectuer des vérifications. 5
    END_INDEX Facultatif. La valeur du fichier CSV à et terminer les vérifications après. 500
  3. Une fois l'exécution du script terminée, ouvrez le fichier CSV de sortie pour afficher les résultats.