Aby sprawdzić, czy urządzenie użytkownika obsługuje RCS i czy jest w stanie komunikować się z agentem RBMS, 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 uniknąć 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, takich jak SMS-y lub MMS-y.
Sprawdzanie możliwości urządzenia
Poniższy kod wysyła prośbę o sprawdzenie 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&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");
Odpowiedź dotycząca możliwości
Po sprawdzeniu możliwości platforma RBM zwraca w formacie JSON listę funkcji obsługiwanych przez określone urządzenie.
{ "features": [ "RICHCARD_STANDALONE", "RICHCARD_CAROUSEL", "ACTION_CREATE_CALENDAR_EVENT", "ACTION_DIAL", "ACTION_OPEN_URL", "ACTION_SHARE_LOCATION", "ACTION_VIEW_LOCATION", "ACTION_OPEN_URL_IN_WEBVIEW" ] }
Żądanie zwraca odpowiedź lub błąd.
Pomyślna odpowiedź jest zwracana tylko wtedy, gdy MSISDN (numer telefonu) został połączony z usługą RCS w ciągu ostatnich 31 dni. Oznacza to, że urządzenie użytkownika zostało zarejestrowane na naszym serwerze RCS w tym czasie. Urządzenia online i urządzenia z RCS sprawdzają się średnio co 1–4 godziny.
Jeśli użytkownik przeniesie kartę SIM na inne urządzenie obsługujące RCS, poprzednie powiązanie urządzenia zostanie usunięte, a nowe zostanie utworzone, co spowoduje zaktualizowanie możliwości urządzenia w usłudze RCS.
Jeśli karta SIM jest umieszczona w urządzeniu, w którym usługa RCS została wyłączona przez operatora lub producenta, lub jeśli karta SIM pozostaje nieużywana, usługa RCS będzie próbować dostarczać wiadomości do wcześniej powiązanego urządzenia przez maksymalnie 31 dni.
Oto, co powoduje błędy 404:
Użytkownik nie jest dostępny przez RBM, np. jeśli jego urządzenie nie obsługuje usługi RCS.
Użytkownik ma protokół RCS, ale Twój agent nie jest uruchomiony w jego sieci komórkowej.
kolejkowanie offline,
Wiadomości są umieszczane w kolejce na maksymalnie 31 dni i dostarczane, gdy urządzenie ponownie połączy się z internetem. Oznacza to, że nawet jeśli urządzenie jest offline przez dłuższy czas (do 31 dni), wiadomości w kolejce będą nadal dostarczane po ponownym połączeniu, o ile MSISDN był połączony z usługą RCS w ciągu ostatnich 31 dni.
Sprawdzanie zbiorcze możliwości
Aby oszacować liczbę użytkowników, których można dotrzeć za pomocą RBM, przeprowadź zbiorczą kontrolę możliwości. Sprawdzanie zbiorcze wskazuje, czy numer telefonu jest dostępny, ale nie podaje, które funkcje obsługuje.
W przypadku każdej zbiorczej kontroli możliwości musisz podać od 500 do 10 tys. unikalnych numerów telefonów. Aby sprawdzić więcej numerów, wykonaj kilka kontroli. Możesz wykonać maksymalnie 600 połączeń na minutę. Aby używać plików CSV jako formatu wejściowego, użyj skryptu do zbiorczego sprawdzania możliwości. Kontrole zbiorcze odczytują informacje z pamięci podręcznej z informacjami o możliwościach, która jest aktualizowana przez klientów za pomocą RCS. Pracownicy obsługi klienta nie proszą bezpośrednio o funkcje poszczególnych urządzeń. Z tego powodu wyniki mogą być nieaktualne.
Sprawdzanie zbiorcze możliwości zwraca listę numerów, do których może dotrzeć agent, na operatorach, na których jest ona dostępna, a także szacowaną łączną liczbę użytkowników dostępnych na wszystkich operatorach. Zobacz odpowiedź na żądanie zbiorczego sprawdzenia uprawnień.
Szacowanie łącznej liczby dostępnych użytkowników
Odpowiedzi na żądanie zbiorcze zawierają listę numerów telefonów, z których można od razu się skontaktować (reachableUsers
). Zawierają one też 2 wartości, które ułatwiają oszacowanie łącznej liczby użytkowników, z którymi można się skontaktować, na wszystkich operatorów.
Jak to działa
Gdy agent wykonuje zbiorczą kontrolę możliwości, RBM losowo wybiera ok. 75% tych numerów, aby sprawdzić wszystkich operatorów (dane w totalRandomSampleUserCount
). RBM zwraca też liczbę numerów dostępnych dla RBM z losowej próbki niezależnie od stanu uruchomienia u operatora (reachableRandomSampleUserCount
). Dzielenie reachableRandomSampleUserCount
przez totalRandomSampleUserCount
pozwala oszacować odsetek numerów, do których agent mógłby dotrzeć, gdyby został uruchomiony u wszystkich operatorów.
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.
Uwzględnianie próbkowania losowego
Testowanie losowych próbek może powodować różnice w wartościach procentowych. 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.
Wysyłanie zbiorczego sprawdzenia możliwości
Poniższy kod wysyła zbiorcze sprawdzenie możliwości i czeka na odpowiedź. Opcje formatowania i wartości znajdziesz w sekcji users.batchGet
.
Numery telefonów muszą być w formacie E.164 (np. „+12223334444”), a lista musi zawierać od 500 do 10 tys. unikalnych numerów telefonów.
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"}));
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 platformach agenta, |
totalRandomSampleUserCount
|
Liczba losowej próbki określonych liczb. Zwykle około 75% wybranych numerów. |
reachableRandomSampleUserCount
|
Liczba numerów z losowej próbki, które można było dodzwonić za pomocą RBM u wszystkich operatorów, niezależnie od tego, u jakiego operatora działał agent. Ta liczba służy do uzyskania przybliżonej szacowanej łącznej liczby dostępnych użytkowników we wszystkich operatorach. |
Narzędzie: skrypt do 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
Aby skonfigurować komputer do testowania zbiorczego, wykonaj te czynności:
- Pobierz i rozpakuj Skrypt zbiorczej kontroli możliwości (Zaloguj się, aby pobrać).
- Postępuj zgodnie z instrukcjami podanymi w pliku README.
Przeprowadzanie zbiorczego sprawdzania możliwości
Aby przeprowadzić zbiorczą weryfikację, wykonaj te czynności:
- 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.