Pour vérifier si l'appareil d'un utilisateur est compatible avec le 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 ne peut pas recevoir de messages RCS, vous pouvez communiquer avec lui via d'autres services, tels que les SMS/MMS.
Vérifier les fonctionnalités de l'appareil
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); });
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");
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')
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");
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", "ACTION_OPEN_URL_IN_WEBVIEW", "ACTION_COMPOSE", ] }
La requête renvoie une réponse ou une erreur.
Une réponse positive n'est renvoyée que si le MSISDN (numéro de téléphone) s'est connecté au service RCS au cours des dernières 24 heures.
Voici les causes des erreurs 404:
L'utilisateur n'est pas joignable par RBM (par exemple, si son appareil n'est pas compatible avec le RCS).
L'utilisateur dispose du RCS, mais votre agent n'est pas lancé sur son réseau mobile.
Mise en file d'attente hors connexion
Les messages sont mis en file d'attente pendant 30 jours maximum et sont distribués lorsque l'appareil revient en ligne. Pour garantir la distribution, l'appareil doit avoir montré des signes d'activité RCS dans les 24 heures suivant l'envoi du message. Cela signifie que même si un appareil est hors connexion pendant une longue période (jusqu'à 30 jours), les messages mis en file d'attente seront toujours distribués lors de la reconnexion, à condition que la période d'activité de 24 heures ait été respectée au moment de l'envoi.
Contrôles des fonctionnalités groupés
Pour estimer le nombre d'utilisateurs pouvant être atteints par le RBM, effectuez une vérification groupée des fonctionnalités. Les vérifications groupées indiquent si un numéro de téléphone est joignable, mais pas les fonctionnalités qu'il prend en charge.
Pour chaque vérification de fonctionnalités groupée, vous devez fournir entre 500 et 10 000 numéros de téléphone uniques. Pour vérifier d'autres numéros, effectuez plusieurs vérifications. Vous pouvez effectuer jusqu'à 600 appels par minute. Utilisez le script de vérification des fonctionnalités groupées pour utiliser des fichiers CSV comme format d'entrée. Les vérifications groupées sont lues à partir du cache des fonctionnalités, qui est mis à jour par les clients de manière naturelle à l'aide du RCS. Les agents ne demandent pas directement les fonctionnalités de chaque appareil. Par conséquent, les résultats peuvent ne pas être à jour.
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 fonctionnalité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.
Fonctionnement
Lorsque votre agent effectue une vérification des fonctionnalités groupée, 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 accessibles 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 atteindre 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 3000
, 80% des numéros échantillonnés étaient joignables.
Tenir compte de l'échantillonnage aléatoire
Tester des échantillons aléatoires peut entraîner des écarts dans les pourcentages. Pour tenir compte des effets de l'échantillonnage aléatoire, exécutez des vérifications de capacité groupées avec un plus grand nombre 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 (par exemple, "+12223334444"), et la liste doit contenir entre 500 et 10 000 numéros de téléphone uniques.
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); });
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"));
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'])
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"}));
Réponse à la vérification des fonctionnalités groupée
Après avoir exécuté une vérification des fonctionnalités groupée, 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 accessibles sur 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 pouvant être atteints par le RBM pour tous les opérateurs, quel que soit l'opérateur sur lequel l'agent est lancé. Ce nombre permet d'obtenir une estimation approximative du nombre total d'utilisateurs joignables par tous les opérateurs. |
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 de 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 débit 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 groupée des fonctionnalités, obtenez 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:
- Apache Maven version 3.3.9 ou ultérieure
- Java 8
Configurer
Pour configurer votre ordinateur de développement pour une vérification groupée des fonctionnalités, procédez comme suit:
- Téléchargez et décompressez le script de vérification des fonctionnalités groupées (Java) Script de vérification des fonctionnalités groupées (Connectez-vous pour télécharger).
- Suivez les étapes indiquées dans le fichier README.
Effectuer une vérification groupée des fonctionnalités
Pour effectuer une vérification groupée, procédez comme suit:
- Dans un terminal, accédez au répertoire racine du script.
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
Une fois le script terminé, ouvrez le fichier CSV de sortie pour afficher les résultats.