Aby sprawdzić, czy urządzenie użytkownika obsługuje protokół RCS i może komunikować się z agentem RBM, możesz poprosić o udostępnienie odpowiednich funkcji urządzenia. Określenie, które funkcje są obsługiwane przez urządzenie (jeśli takie występują), umożliwia agentowi dostosowanie rozmowy do możliwości urządzenia i unikanie prezentowania interakcji, które są trudne lub niemożliwe do wykonania przez użytkownika.
Jeśli urządzenie użytkownika w ogóle nie jest w stanie odbierać wiadomości RCS, możesz komunikować się z nim za pomocą innych usług, na przykład SMS-ów.
Wyślij kontrolę możliwości
Poniższy kod wysyła kontrolę możliwości i czeka na odpowiedź. Opcje formatowania i wartości znajdziesz w sekcji 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); });Ten kod jest fragmentem przykładowego agenta RBM.
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");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 jest fragmentem 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 jest fragmentem przykładowego agenta RBM.
Odpowiedź dotycząca możliwości
Po przeprowadzeniu sprawdzenia możliwości platforma RBM zwraca listę funkcji w formacie JSON obsługiwanych przez dane urządzenie.
{ "features": [ "REVOCATION", "RICHCARD_STANDALONE", "RICHCARD_CAROUSEL", "ACTION_CREATE_CALENDAR_EVENT", "ACTION_DIAL", "ACTION_OPEN_URL", "ACTION_SHARE_LOCATION", "ACTION_VIEW_LOCATION", ] }
Jeśli wyślesz sprawdzenie możliwości użytkownikowi, który nie jest dostępny w RBM, na przykład gdy urządzenie nie obsługuje RCS, platforma RBM zwróci błąd 404
.
Jeśli wyślesz sprawdzanie możliwości użytkownikowi RCS w sieci, w której agent nie został jeszcze uruchomiony, platforma RBM zwróci błąd 403
.
Zbiorcze kontrole możliwości
Aby oszacować liczbę dostępnych użytkowników RBM, przeprowadź zbiorcze sprawdzanie możliwości. Kontrola zbiorcza wskazuje, czy dany numer telefonu jest osiągalny, ale nie wskazuje, które funkcje są obsługiwane.
W jednym zbiorczym sprawdzeniu możliwości możesz podać maksymalnie 10 000 numerów telefonów. Aby sprawdzić więcej liczb, przeprowadź kilka testów. Aby używać plików CSV jako formatu wejściowego, użyj skryptu sprawdzania możliwości zbiorczych.
Zbiorcze testy możliwości obejmują maksymalnie 600 zapytań na minutę (QPM).
Zbiorcze testy możliwości zwracają listę numerów, do których agent może docierać u operatorów aktualnie obsługiwanych, a także szacowaną łączną liczbę dostępnych użytkowników u wszystkich operatorów. Zobacz Odpowiedź na zbiorcze sprawdzenie możliwości.
Szacowanie łącznej liczby osiągalnych użytkowników
Odpowiedzi na weryfikację zbiorczą zawierają listę numerów telefonów, z których można natychmiast skontaktować się u operatorów obsługiwanych przez agenta (reachableUsers
). Odpowiedzi zawierają też 2 wartości, które pomagają oszacować łączną liczbę osiągalnych użytkowników u wszystkich operatorów.
Gdy agent przeprowadza zbiorcze sprawdzenie możliwości ponad 500 numerów telefonów, RBM losowo testuje około 75% z nich, aby sprawdzić wszystkich operatorów (raportowanych w totalRandomSampleUserCount
). RBM zwraca też liczbę dostępnych numerów RBM z losowej próbki, niezależnie od stanu uruchomienia
przez operatora (reachableRandomSampleUserCount
). Dzieląc
reachableRandomSampleUserCount
przez totalRandomSampleUserCount
, możesz
oszacować, jaki procent numerów byłby dostępny dla Twojego agenta
w przypadku ich uruchomienia.
Jeśli na przykład w ramach zbiorczego sprawdzania możliwości określisz 5000 numerów telefonów, a RBM losuje próbkę około 75% określonych numerów, totalRandomSampleUserCount
może mieć wartość 3750
. Jeśli reachableRandomSampleUserCount
ma wartość 3000
, to 80% próbkowanych liczb było osiągalnych.
Testowanie próbek losowych może prowadzić do rozbieżności w procentach. Aby uwzględnić efekty próbkowania losowego, przeprowadź zbiorcze kontrole możliwości obejmujące większą liczbę numerów telefonów. Możesz też wielokrotnie przeprowadzać testy z tymi samymi partiami liczb, a potem uśredniać wyniki, aby znormalizować działanie próbkowania losowego.
Wyślij zbiorcze sprawdzenie możliwości
Poniższy kod służy do zbiorczego sprawdzenia możliwości i oczekuje na odpowiedź. Opcje formatowania i wartości znajdziesz w sekcji 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 \ -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); });Ten kod korzysta z przykładowego agenta RBM.
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"));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 zbiorcze sprawdzenie możliwości
Po przeprowadzeniu zbiorczego sprawdzania możliwości RBM zwraca odpowiedź w formacie JSON.
{ "reachableUsers": [ "PHONE_NUMBER" ], "totalRandomSampleUserCount": "COUNT_OF_SAMPLE", "reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE" }
Pole | Opis |
---|---|
reachableUsers
|
Lista osiągalnych użytkowników u operatorów aktualnie obsługiwanych przez agenta. |
totalRandomSampleUserCount
|
Liczba losowej próbki określonych liczb. Zwykle ok. 75% podanych liczb. |
reachableRandomSampleUserCount
|
Liczba numerów z losowej próbki, do których RBM można uzyskać u wszystkich operatorów, niezależnie od tego, jakich operatorów obecnie używają agent. |
Narzędzie: Skrypt zbiorczego sprawdzania możliwości
Skrypt sprawdzania możliwości Buck Capability Check (zaloguj się, aby pobrać) przeprowadza zbiorcze kontrole możliwości z wykorzystaniem plików CSV jako formatów wejściowych i wyjściowych. Skrypt analizuje plik CSV z nazwami MPNSDN i używa pakietu SDK RBM do sprawdzania możliwości każdego wymienionego urządzenia.
Maszyna wirtualna z 2 procesorami i 4 GB pamięci RAM, na której uruchomiono skrypt z 500 wątkami, może osiągnąć około 1 tys. zapytań na sekundę, ale ogólna liczba zapytań na sekundę zależy od używanej maszyny, kraju urządzeń, regionalnej konfiguracji agenta i użytego punktu końcowego API.
Wymagania wstępne
Zanim użyjesz tego narzędzia do zbiorczego sprawdzenia możliwości, zapoznaj się z następującymi zasobami:
- Ścieżka do pliku CSV z numerami MSISDN w celu sprawdzenia możliwości
- Ścieżka do klucza konta usługi agenta na komputerze programisty
Dodatkowo na komputerze musi być zainstalowane to oprogramowanie:
- Apache Maven 3.3.9 lub nowsza
- Java 8
Skonfiguruj
- Na komputerze programisty pobierz i wyodrębnij Skrypt zbiorczego sprawdzania możliwości (zaloguj się, aby pobrać).
- Przejdź do katalogu głównego skryptu.
- Zmień nazwę klucza konta usługi na „rbm-agent-service-account-credentials.json” i przenieś klucz konta usługi do katalogu „src/main/resources”.
Przeprowadzanie sprawdzania zbiorczego
- Przejdź w terminalu do katalogu głównego skryptu.
Uruchom te polecenia:
export MAVEN_OPTS="-Xms1024m -Xmx3000m"
mvn compile && mvn exec:java -Dexec.args="INPUT_FILE OUTPUT_FILE NUM_OF_THREADS START_INDEX END_INDEX"
Zastąp zmienne zidentyfikowanymi przez siebie wartościami.
Zastąp Z modelem Przykład INPUT_FILE Ścieżka do wejściowego pliku CSV. input.csv
OUTPUT_FILE Ścieżka do wyjściowego pliku CSV. output.csv
NUM_OF_THREADS Liczba wątków, które mają być przeznaczone na testy możliwości. 500
START_INDEX Opcjonalnie. Wartość w pliku CSV, od której ma się rozpocząć sprawdzanie. 5
END_INDEX Opcjonalnie. Wartość w pliku CSV, po której następuje zakończenie sprawdzania. 500
Po zakończeniu skryptu otwórz wyjściowy plik CSV, aby wyświetlić wyniki.