Sie können die Funktionen des Geräts anfordern, um zu prüfen, ob das Gerät eines Nutzers RCS-fähig ist und mit einem RCS-Agent kommunizieren kann. Wenn Sie herausfinden, welche Funktionen ein Gerät gegebenenfalls unterstützt, kann der Agent die Unterhaltung an die Funktionen des Geräts anpassen und Interaktionen vermeiden, die für den Nutzer schwierig oder unmöglich sind.
Wenn das Gerät eines Nutzers keine RCS-Nachrichten empfangen kann, können Sie über andere Dienste wie SMS mit dem Nutzer kommunizieren.
Funktionsprüfung senden
Mit dem folgenden Code wird eine Funktionsprüfung gesendet und es wird auf eine Antwort gewartet. Informationen zu Formatierungs- und Wertoptionen finden Sie unter 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); });Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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");Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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')Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
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");Dieser Code ist ein Auszug aus einem RBM-Beispiel-Agent.
Funktionsantwort
Nach dem Ausführen einer Funktionsprüfung gibt die RBM-Plattform eine Liste der Funktionen im JSON-Format zurück, die vom angegebenen Gerät unterstützt werden.
{ "features": [ "REVOCATION", "RICHCARD_STANDALONE", "RICHCARD_CAROUSEL", "ACTION_CREATE_CALENDAR_EVENT", "ACTION_DIAL", "ACTION_OPEN_URL", "ACTION_SHARE_LOCATION", "ACTION_VIEW_LOCATION", ] }
Wenn Sie eine Funktionsprüfung an einen Nutzer senden, der nicht mit RBM erreichbar ist, weil sein Gerät z. B. RCS nicht unterstützt, gibt die RBM-Plattform den Fehler 404
zurück.
Wenn Sie eine Funktionsprüfung an einen RCS-Nutzer in einem Netzwerk senden, in dem Ihr Agent noch nicht gestartet wurde, gibt die RBM-Plattform den Fehler 403
zurück.
Bulk-Funktionsprüfungen
Führen Sie eine Bulk-Funktionsprüfung durch, um die Anzahl der über RBM erreichbaren Nutzer zu ermitteln. Bulk-Prüfungen geben an, ob eine Telefonnummer erreichbar ist, aber nicht, welche Funktionen von einer Telefonnummer unterstützt werden.
Pro Bulk-Funktionsprüfung können Sie bis zu 10.000 Telefonnummern angeben. Führen Sie mehrere Prüfungen durch, um mehr Zahlen zu prüfen. Nutzen Sie das Script für Bulk-Funktionsprüfung, um CSV-Dateien als Eingabeformat zu nutzen.
Bulk-Funktionsprüfungen umfassen maximal 600 Abfragen pro Minute.
Bulk-Funktionsprüfungen geben eine Liste der Nummern zurück, die Ihr Agent bei den aktuell aktivierten Mobilfunkanbietern erreichen kann, sowie Schätzungen für die Gesamtzahl der erreichbaren Nutzer bei allen Mobilfunkanbietern. Siehe Bulk-Antwort auf Funktionsprüfungen.
Gesamtzahl der erreichbaren Nutzer schätzen
Die Antworten der Bulk-Prüfung enthalten eine Liste von Telefonnummern, die bei den Mobilfunkanbietern Ihres Agents sofort erreichbar sind (reachableUsers
). Die Antworten enthalten aber auch zwei Werte, mit denen Sie die Gesamtzahl der erreichbaren Nutzer bei allen Mobilfunkanbietern schätzen können.
Wenn Ihr Agent eine Bulk-Funktionsprüfung mit mehr als 500 Telefonnummern durchführt, werden etwa 75% dieser Zahlen von RBM nach dem Zufallsprinzip ausgewählt, um alle Mobilfunkanbieter zu prüfen (in totalRandomSampleUserCount
erfasst). RBM gibt außerdem die Anzahl der RBM-erreichbaren Zahlen aus der Zufallsstichprobe zurück, unabhängig vom Startstatus des Mobilfunkanbieters (reachableRandomSampleUserCount
). Wenn Sie reachableRandomSampleUserCount
durch totalRandomSampleUserCount
teilen, erhalten Sie eine Schätzung des Prozentsatzes der Nummern, die Ihr Agent erreichen könnte, wenn er aktiviert wäre.
Wenn Sie beispielsweise bei der Bulk-Funktionsprüfung 5.000 Telefonnummern angeben und RBM etwa 75% der angegebenen Nummern nach dem Zufallsprinzip ermittelt, kann totalRandomSampleUserCount
den Wert 3750
haben. Wenn reachableRandomSampleUserCount
den Wert 3000
hat, waren 80% der Stichprobenzahlen erreichbar.
Das Testen von Zufallsstichproben kann zu Abweichungen bei den Prozentsätzen führen. Führen Sie Bulk-Funktionsprüfungen mit größeren Telefonnummern durch, um die Auswirkungen von Zufallsstichproben zu berücksichtigen. Sie können auch Prüfungen mit denselben Batches von Zahlen mehrmals durchführen und dann den Durchschnitt der Ergebnisse ermitteln, um das Stichprobenverhalten zu normalisieren.
Bulk-Funktionsprüfung senden
Mit dem folgenden Code wird eine Bulk-Funktionsprüfung gesendet und es wird auf eine Antwort gewartet. Informationen zu Formatierungs- und Wertoptionen finden Sie unter users.batchGet
.
Telefonnummern müssen das E.164-Format haben. Beispiel: „+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); });In diesem Code wird der RBM-Beispiel-Agent verwendet.
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"));In diesem Code wird der RBM-Beispiel-Agent verwendet.
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'])In diesem Code wird der RBM-Beispiel-Agent verwendet.
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 ListIn diesem Code wird der RBM-Beispiel-Agent verwendet.({"+12223334444", "+12223334444"}));
Bulk-Antwort auf Funktionsprüfung
Nach einer Bulk-Funktionsprüfung gibt RBM eine Antwort im JSON-Format zurück.
{ "reachableUsers": [ "PHONE_NUMBER" ], "totalRandomSampleUserCount": "COUNT_OF_SAMPLE", "reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE" }
Feld | Beschreibung |
---|---|
reachableUsers
|
Eine Liste der erreichbaren Nutzer der aktuell aktivierten Mobilfunkanbieter des Agents. |
totalRandomSampleUserCount
|
Die Anzahl einer Zufallsstichprobe aus bestimmten Zahlen. Normalerweise etwa 75% der angegebenen Zahlen. |
reachableRandomSampleUserCount
|
Die Anzahl der Zahlen aus der Zufallsstichprobe, die bei allen Mobilfunkanbietern über RBM erreichbar sind, unabhängig von den aktuell aktivierten Mobilfunkanbietern des Agents. |
Tool: Skript für die Bulk-Funktionsprüfung
Mit dem Script für Buck-Funktionsprüfung (Zum Herunterladen anmelden) werden Bulk-Funktionsprüfungen durchgeführt, wobei CSV-Dateien als Eingabe- und Ausgabeformate verwendet werden. Das Skript parst die CSV-Datei mit den MSISDNs und prüft mithilfe des RBM SDK die Funktionen aller aufgeführten Geräte.
Eine virtuelle Maschine mit 2 CPUs und 4 GB RAM, auf der das Skript mit 500 Threads ausgeführt wird, kann etwa 1.000 Abfragen pro Sekunde erreichen. Die Gesamtzahl der Abfragen pro Sekunde hängt jedoch von der verwendeten Maschine, dem Land der Geräte, der regionalen Konfiguration Ihres Agents und dem verwendeten API-Endpunkt ab.
Voraussetzungen
Bevor Sie mit dem Tool eine Bulk-Funktionsprüfung durchführen, rufen Sie Folgendes ab:
- Der Pfad zu einer CSV-Datei mit MSISDNs, in der Funktionsprüfungen durchgeführt werden können
- Der Pfad zum Dienstkontoschlüssel Ihres Agents auf Ihrem Entwicklungscomputer
Außerdem muss die folgende Software auf Ihrem Entwicklungscomputer installiert sein:
- Apache Maven 3.3.9 oder höher
- Java 8
Einrichten
- Laden Sie auf Ihrem Entwicklungscomputer das Skript für Bulk-Funktionsprüfung (Zum Download anmelden).
- Gehen Sie zum Stammverzeichnis des Skripts.
- Benennen Sie den Dienstkontoschlüssel in "rbm-agent-service-account-credentials.json" um und verschieben Sie den Dienstkontoschlüssel in das Verzeichnis "src/main/resources".
Bulk-Prüfung ausführen
- Gehen Sie in einem Terminal zum Stammverzeichnis des Skripts.
Führen Sie folgende Befehle aus:
export MAVEN_OPTS="-Xms1024m -Xmx3000m"
mvn compile && mvn exec:java -Dexec.args="INPUT_FILE OUTPUT_FILE NUM_OF_THREADS START_INDEX END_INDEX"
Ersetzen Sie Variablen durch Werte, die Sie ermittelt haben.
Ersetzen Mit Beispiel INPUT_FILE Der Pfad zur eingegebenen CSV-Datei. input.csv
OUTPUT_FILE Der Pfad zur Ausgabe-CSV-Datei. output.csv
NUM_OF_THREADS Die Anzahl der Threads, die für Funktionsprüfungen vorgesehen sind. 500
START_INDEX Optional. Der Wert in der CSV-Datei, für den Prüfungen ausgeführt werden sollen. 5
END_INDEX Optional. Der Wert in der CSV-Datei, nach dem die Prüfungen beendet werden sollen. 500
Wenn das Skript abgeschlossen ist, öffnen Sie die Ausgabe-CSV-Datei, um die Ergebnisse anzusehen.