Vérifications des capacités

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

Si l'appareil d'un utilisateur n'est pas du tout capable de recevoir des messages RCS, vous pouvez communiquer avec lui via d'autres services, tels que les SMS.

Envoyer une vérification des fonctionnalités

Le code suivant envoie une vérification des fonctionnalités et attend une réponse. Pour en savoir plus sur les options 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 fonctionnalités, la plate-forme RBM renvoie une liste au format JSON des fonctionnalités compatibles avec 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 fonctionnalités à un utilisateur qui n'est pas accessible 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 des fonctionnalités à un utilisateur RCS sur un réseau où votre agent n'est pas encore lancé, la plate-forme RBM renvoie une erreur 403.

Contrôles des fonctionnalités groupés

Pour estimer le nombre d'utilisateurs joignables par RBM, effectuez une vérification groupée des capacités. Les vérifications groupées indiquent si un numéro de téléphone est accessible, mais pas les fonctionnalités qu'il prend en charge.

Vous pouvez spécifier jusqu'à 10 000 numéros de téléphone par vérification groupée des fonctionnalités. Pour vérifier d'autres numéros, effectuez plusieurs vérifications. Utilisez le script de vérification groupée des capacités pour utiliser des fichiers CSV comme format d'entrée.

Les vérifications de fonctionnalités groupées sont limitées à 600 requêtes par minute (RPM).

Les vérifications des fonctionnalités groupées renvoient la liste des numéros que votre agent peut joindre sur les opérateurs où il est lancé, ainsi que des estimations du nombre total d'utilisateurs joignables sur tous les opérateurs. Consultez la section Réponse de la vérification des capacités groupées.

Estimer le nombre total d'utilisateurs accessibles

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

Lorsque votre agent effectue une vérification groupée des fonctionnalités pour plus de 500 numéros de téléphone, RBM échantillonne de manière aléatoire environ 75 % de ces numéros pour vérifier tous les opérateurs (indiqué dans totalRandomSampleUserCount). RBM renvoie également le nombre de numéros joignables par RBM à partir de l'échantillon aléatoire, quel que soit l'état de lancement de l'opérateur (reachableRandomSampleUserCount). En divisant reachableRandomSampleUserCount par totalRandomSampleUserCount, vous pouvez estimer le pourcentage de numéros que votre agent pourrait joindre s'il était lancé sur tous les opérateurs.

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

Tester des échantillons aléatoires peut entraîner des écarts dans les pourcentages. Pour tenir compte des effets de l'échantillonnage aléatoire, effectuez des vérifications de capacité groupées avec de plus grandes quantités de numéros de téléphone. Vous pouvez également effectuer des vérifications avec les mêmes lots de nombres plusieurs fois, puis calculer la moyenne des résultats pour normaliser le comportement d'échantillonnage aléatoire.

Envoyer une vérification des fonctionnalités groupée

Le code suivant envoie une vérification des fonctionnalités groupée et attend une réponse. Pour en savoir plus sur les options 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 d'agent 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"));
Ce code utilise l'agent d'exemple 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'])
Ce code utilise l'exemple d'agent 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'agent d'exemple RBM.

Réponse à la vérification groupée des fonctionnalités

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 Liste des utilisateurs joignables pour les opérateurs lancés par l'agent.
totalRandomSampleUserCount Nombre d'un échantillon aléatoire de nombres spécifiés. Généralement, environ 75 % des numéros spécifiés.
reachableRandomSampleUserCount Nombre de numéros de l'échantillon aléatoire accessibles par RBM auprès de tous les opérateurs, quels que soient les opérateurs sur lesquels l'agent est lancé.

Outil : Script de vérification des fonctionnalités groupées

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

Une machine virtuelle avec deux processeurs et 4 Go de RAM exécutant le script avec 500 threads peut atteindre environ 1 000 QPS, mais le QPS global dépend de la machine utilisée, du pays des appareils, de la configuration régionale de votre agent et du point de terminaison de l'API 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 contenant des MSISDN sur lesquels effectuer des vérifications de fonctionnalités
  • Chemin d'accès à la clé du compte de service de votre agent sur votre ordinateur de développement

Vous devez également installer les logiciels suivants sur votre ordinateur de développement :

Configurer

  1. Sur votre ordinateur de développement, téléchargez et extrayez le script de vérification des fonctionnalités groupées (Java) Script de vérification des fonctionnalités groupées (Connectez-vous pour le télécharger).
  2. Suivez les étapes indiquées 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 à consacrer aux vérifications de capacité. 500
    START_INDEX Facultatif. Valeur du fichier CSV à partir de laquelle exécuter les vérifications. 5
    END_INDEX Facultatif. Valeur du fichier CSV à laquelle mettre fin aux vérifications. 500
  3. Une fois le script terminé, ouvrez le fichier CSV de sortie pour afficher les résultats.