Aby sprawdzić, czy urządzenie użytkownika obsługuje RCS i czy jest w stanie komunikować się z agentem RBM, możesz poprosić o informacje o możliwościach urządzenia. Określanie, które funkcje obsługuje urządzenie, pozwala pracownikowi obsługi klienta dostosować rozmowę do możliwości urządzenia i unikać interakcji, które są dla użytkownika trudne lub niemożliwe do wykonania.
Jeśli urządzenie użytkownika nie obsługuje w ogóle odbierania wiadomości RCS, możesz komunikować się z nim za pomocą innych usług, np. SMS-ów.
Wyślij sprawdzenie możliwości
Poniższy kod wysyła prośbę o sprawdzenie możliwości i czeka na odpowiedź. Opcje formatowania i wartości znajdziesz w artykule 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); });Ten kod jest fragmentem przykładowego agenta 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");Ten kod jest fragmentem przykładowego agenta 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')Ten kod pochodzi z przykładowego agenta 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");Ten kod pochodzi z przykładowego agenta RBM.
Odpowiedź dotycząca możliwości
Po sprawdzeniu możliwości platforma RBM zwraca listę funkcji obsługiwanych przez określone urządzenie w formacie JSON.
{ "features": [ "REVOCATION", "RICHCARD_STANDALONE", "RICHCARD_CAROUSEL", "ACTION_CREATE_CALENDAR_EVENT", "ACTION_DIAL", "ACTION_OPEN_URL", "ACTION_SHARE_LOCATION", "ACTION_VIEW_LOCATION", ] }
Jeśli wysyłasz sprawdzenie możliwości do użytkownika, którego nie można znaleźć za pomocą RBM (na przykład jeśli jego urządzenie nie obsługuje RCS), platforma RBM zwraca błąd 404
.
Jeśli wyślesz do użytkownika RCS prośbę o sprawdzenie możliwości w sieci, w której Twój agent nie został jeszcze uruchomiony, platforma RBM zwróci błąd 403
.
Sprawdzanie zbiorcze uprawnień
Aby oszacować liczbę użytkowników, do których można dotrzeć w ramach RBM, przeprowadź zbiorcze sprawdzanie możliwości. Kontrole zbiorcze wskazują, czy numer telefonu jest osiągalny, ale nie funkcje obsługiwane przez dany numer.
Możesz podać maksymalnie 10 tys. numerów telefonu na jedną zbiorczą kontrolę możliwości. Aby sprawdzić więcej numerów, wykonaj kilka kontroli. Aby użyć plików CSV jako formatu wejściowego, użyj skryptu zbiorczego sprawdzania możliwości.
Maksymalna liczba zapytań w przypadku zbiorczego sprawdzania uprawnień to 600 zapytań na minutę (QPM).
Sprawdzanie zbiorcze możliwości zwraca listę numerów, do których może dotrzeć agent, w przypadku operatorów, w których usługa jest dostępna, a także szacowaną łączną liczbę użytkowników, do których można dotrzeć, w przypadku wszystkich operatorów. Zobacz odpowiedź na żądanie zbiorczego sprawdzenia uprawnień.
Oszacuj łączną liczbę osiągalnych użytkowników
Odpowiedzi na potrzeby sprawdzenia zbiorczego obejmują listę numerów telefonów, które są dostępne natychmiast u operatorów uruchamianych przez agenta (reachableUsers
), ale odpowiedzi zawierają też 2 wartości, które pomagają oszacować łączną liczbę osiągalnych użytkowników wszystkich operatorów.
Gdy agent przeprowadza zbiorczą kontrolę możliwości ponad 500 numerów telefonów, RBM losowo sprawdza ok. 75% z tych numerów, aby sprawdzić wszystkich operatorów (podana w totalRandomSampleUserCount
). RBM zwraca także liczbę dostępnych numerów RBM z losowej próbki bez względu na stan uruchomienia usługi przez operatora (reachableRandomSampleUserCount
). Dzieląc reachableRandomSampleUserCount
przez totalRandomSampleUserCount
, możesz oszacować odsetek numerów, które agent dotarł do wszystkich operatorów, gdy udało się dotrzeć do tego operatora.
Jeśli np. w ramach zbiorczej kontroli możliwości podasz 5000 numerów telefonów, a RBM losowo wybierze około 75% z nich, totalRandomSampleUserCount
może być 3750
. Jeśli reachableRandomSampleUserCount
to 3000
, to 80% wybranych numerów było dostępnych.
Testowanie losowych próbek może prowadzić do różnic w procentach. Aby uwzględnić efekty losowego próbkowania, przeprowadzaj zbiorcze sprawdzanie możliwości z większą liczbą numerów telefonów. Możesz też kilkakrotnie przeprowadzać weryfikacje tych samych grup liczb, a potem uśredniać wyniki, aby znormalizować zachowanie próbkowania losowego.
Wyślij zbiorczą kontrolę możliwości
Poniższy kod wysyła zbiorcze sprawdzenie możliwości i czeka na odpowiedź. Opcje formatowania i wartości znajdziesz w artykule users.batchGet
.
Numery telefonów muszą być w formacie E.164. Na przykład „+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); });W tym kodzie używany jest przykładowy 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"));Ten kod korzysta z przykładowego agenta 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'])Ten kod korzysta z przykładowego agenta 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 ListTen kod korzysta z przykładowego agenta RBM.({"+12223334444", "+12223334444"}));
Odpowiedź na weryfikację zbiorczą
Po przeprowadzeniu zbiorczej kontroli możliwości RBM zwraca odpowiedź w formacie JSON.
{ "reachableUsers": [ "PHONE_NUMBER" ], "totalRandomSampleUserCount": "COUNT_OF_SAMPLE", "reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE" }
Pole | Opis |
---|---|
reachableUsers
|
lista dostępnych użytkowników na obsługiwanych przez agenta operatorów; |
totalRandomSampleUserCount
|
Liczba losowej próbki określonych liczb. Zwykle ok. 75% podanych liczb. |
reachableRandomSampleUserCount
|
Liczba numerów z losowej próbki, które można dotrzeć za pomocą RBM u wszystkich operatorów, niezależnie od tego, u jakiego operatora działa agent. |
Narzędzie: skrypt zbiorczego sprawdzania uprawnień
Skrypt sprawdzania uprawnień w Bucku (zaloguj się, aby pobrać) wykonuje zbiorcze sprawdzanie uprawnień, używając plików CSV jako formatów wejściowych i wyjściowych. Skrypt analizuje plik CSV z numerami MSISDN i korzysta z RBM SDK, aby sprawdzić możliwości każdego wymienionego urządzenia.
Maszyna wirtualna z 2 procesorami i 4 GB pamięci RAM, na której działa skrypt z 500 wątkami, może osiągnąć około 1000 QPS, ale ogólny QPS zależy od używanego komputera, kraju, w którym znajdują się urządzenia, konfiguracji regionalnej Twojego agenta i używanego punktu końcowego interfejsu API.
Wymagania wstępne
Zanim użyjesz narzędzia do zbiorczego sprawdzania możliwości, przygotuj te informacje:
- Ścieżka do pliku CSV z identyfikatorami MSISDN, dla których chcesz sprawdzić uprawnienia
- Ścieżka do klucza konta usługi agenta na komputerze programisty
Dodatkowo na maszynie deweloperskiej musisz mieć zainstalowane te programy:
- Apache Maven 3.3.9 lub nowsza.
- Java 8
Skonfiguruj
- Na komputerze deweloperskim pobierz i rozpakuj plik Skrypt zbiorczej kontroli możliwości (Zaloguj się, aby pobrać).
- Postępuj zgodnie z instrukcjami podanymi w pliku README.
Przeprowadzanie zbiorczego sprawdzania
- W terminalu przejdź do katalogu głównego skryptu.
Uruchom te polecenia:
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"
Zastąp zmienne wartościami, które zostały przez Ciebie określone.
Zamień Tym Przykład AGENT_ID Identyfikator agenta RCS Business Messaging welcome-bot
INPUT_FILE Ścieżka do pliku CSV z danymi wejściowymi. input.csv
OUTPUT_FILE Ścieżka do wyjściowego pliku CSV. output.csv
NUM_OF_THREADS Liczba wątków przeznaczonych do sprawdzania możliwości. 500
START_INDEX Opcjonalnie: Wartość w pliku CSV, na podstawie której mają być wykonywane sprawdzania. 5
END_INDEX Opcjonalnie: Wartość w pliku CSV, po której mają się zakończyć sprawdzania. 500
Po zakończeniu działania skryptu otwórz wyjściowy plik CSV, aby wyświetlić wyniki.