Aby sprawdzić, czy urządzenie użytkownika obsługuje RCS i może komunikować się z agentem RBM, możesz poprosić o informacje o jego możliwościach. Określenie, które funkcje są obsługiwane przez urządzenie (jeśli w ogóle), pozwala agentowi dostosować rozmowę do możliwości urządzenia i uniknąć przedstawiania interakcji, które są trudne lub niemożliwe do wykonania przez użytkownika.
Jeśli urządzenie użytkownika nie może odbierać wiadomości RCS, możesz komunikować się z nim za pomocą innych usług, takich jak SMS/MMS.
Sprawdzanie możliwości urządzenia
Poniższy kod wysyła 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 funkcji
Po przeprowadzeniu sprawdzania możliwości platforma RBM zwraca listę funkcji w formacie JSON, które obsługuje 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", "PDF_IN_RICH_CARDS" ] }
Żądanie zwraca odpowiedź lub błąd.
Pomyślna odpowiedź jest zwracana tylko wtedy, gdy numer MSISDN (numer telefonu) połączył się 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 przedziale czasu. Urządzenia online i urządzenia z obsługą RCS sprawdzają się średnio co 1–4 godziny.
Jeśli użytkownik przeniesie kartę SIM do innego urządzenia obsługującego RCS, poprzednie powiązanie urządzenia zostanie usunięte i utworzone zostanie nowe, co spowoduje zaktualizowanie możliwości urządzenia w usłudze RCS.
Jeśli karta SIM zostanie umieszczona w urządzeniu, w którym RCS jest wyłączony przez operatora lub producenta, albo karta SIM pozostanie nieużywana, usługa RCS będzie nadal próbować dostarczać wiadomości na wcześniej powiązane urządzenie przez maksymalnie 31 dni.
Oto przyczyny błędów 404:
Użytkownik jest niedostępny w RBM, np. jeśli jego urządzenie nie obsługuje RCS.
Użytkownik ma 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 będzie offline przez dłuższy czas (do 31 dni), wiadomości w kolejce zostaną dostarczone po ponownym nawiązaniu połączenia, o ile numer MSISDN połączył się z usługą RCS w ciągu ostatnich 31 dni.
Sprawdzanie możliwości zbiorczych
Aby oszacować liczbę użytkowników, do których można dotrzeć za pomocą RBM, przeprowadź zbiorcze sprawdzanie możliwości. Sprawdzanie zbiorcze wskazuje, czy numer telefonu jest osiągalny, ale nie informuje, które funkcje są obsługiwane.
W przypadku każdego sprawdzenia możliwości zbiorczych musisz podać od 500 do 10 000 niepowtarzalnych numerów telefonów. Aby sprawdzić więcej numerów, wykonaj kilka weryfikacji. Możesz wykonywać do 600 połączeń na minutę. Użyj skryptu do sprawdzania możliwości zbiorczych, aby używać plików CSV jako formatu wejściowego. Sprawdzanie zbiorcze odczytuje dane z pamięci podręcznej funkcji, która jest aktualizowana przez klientów w sposób naturalny za pomocą RCS. Agenci nie żądają bezpośrednio informacji o możliwościach poszczególnych urządzeń. Z tego powodu wyniki mogą być nieaktualne.
Sprawdzanie możliwości wysyłania wiadomości zbiorczych zwraca listę numerów, do których Twój agent może wysyłać wiadomości w sieciach operatorów, w których jest uruchomiony, a także szacunkową łączną liczbę użytkowników, do których można dotrzeć we wszystkich sieciach. Zobacz Odpowiedź na zbiorcze sprawdzenie możliwości.
Szacowanie łącznej liczby użytkowników, do których można dotrzeć
Odpowiedzi na zbiorcze sprawdzanie obejmują listę numerów telefonów, które są natychmiast dostępne w sieciach operatorów obsługiwanych przez Twojego agenta (reachableUsers). Odpowiedzi zawierają też 2 wartości, które pomagają oszacować łączną liczbę użytkowników dostępnych we wszystkich sieciach.
Jak to działa
Gdy agent przeprowadza zbiorcze sprawdzanie możliwości, RBM losowo próbkuje około 75% tych numerów, aby sprawdzić wszystkich operatorów (informacje są podawane w totalRandomSampleUserCount). RBM zwraca też liczbę numerów osiągalnych w RBM z próbki losowej, niezależnie od stanu wdrożenia u operatora (reachableRandomSampleUserCount). Dzieląc reachableRandomSampleUserCount przez totalRandomSampleUserCount, możesz oszacować odsetek numerów, do których Twój agent mógłby dotrzeć, gdyby został wdrożony u wszystkich operatorów.
Jeśli na przykład w sprawdzaniu zbiorczym podasz 5000 numerów telefonów, a RBM losowo wybierze około 75% z nich, totalRandomSampleUserCount może wynosić 3750. Jeśli wartość reachableRandomSampleUserCount
wynosi 3000, oznacza to, że 80% próbkowanych numerów było osiągalnych.
Uwzględnianie próbkowania losowego
Testowanie próbek losowych może prowadzić do różnic w wartościach procentowych. Aby uwzględnić wpływ próbkowania losowego, przeprowadź zbiorcze sprawdzanie możliwości z użyciem większej liczby numerów telefonów. Możesz też wielokrotnie przeprowadzać kontrole na tych samych partiach liczb, a następnie uśredniać wyniki, aby znormalizować zachowanie losowego próbkowania.
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 000 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 sprawdzenie możliwości zbiorczych
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 użytkowników, do których można dotrzeć za pomocą operatorów, z którymi współpracuje agent. |
totalRandomSampleUserCount
|
Liczba losowej próbki określonych liczb. Zwykle około 75% określonych numerów. |
reachableRandomSampleUserCount
|
Liczba numerów z próbki losowej, do których można dotrzeć za pomocą RBM u wszystkich operatorów, niezależnie od tego, u których operatorów uruchomiono agenta. Ta liczba służy do podawania przybliżonego oszacowania łącznej liczby użytkowników, do których można dotrzeć za pomocą wszystkich operatorów. |
reachableUsersMap
|
Tylko dane wyjściowe. Mapa identyfikatorów operatorów z listą użytkowników, do których można dotrzeć za pomocą tego operatora. To pole jest wypełniane tylko w przypadku numerów telefonów w Stanach Zjednoczonych. |
Narzędzie: skrypt do zbiorczego sprawdzania możliwości
Skrypt do zbiorczego sprawdzania możliwości (zaloguj się, aby pobrać) przeprowadza zbiorcze sprawdzanie możliwości, używając plików CSV jako formatów wejściowych i wyjściowych. Skrypt analizuje plik CSV z numerami MSISDN i za pomocą pakietu RBM SDK sprawdza możliwości każdego urządzenia z tej listy.
Wirtualna maszyna z 2 procesorami i 4 GB pamięci RAM, na której skrypt jest uruchamiany z 500 wątkami, może osiągnąć około 1000 zapytań na sekundę, ale ogólna liczba zapytań na sekundę zależy od używanej maszyny, kraju urządzeń, konfiguracji regionalnej agenta i używanego punktu końcowego interfejsu API.
Wymagania wstępne
Zanim użyjesz narzędzia do przeprowadzenia zbiorczego sprawdzania możliwości, zdobądź te informacje:
- Ścieżka do pliku CSV z numerami MSISDN, na których mają być przeprowadzane testy możliwości
- Ścieżka do klucza konta usługi agenta na komputerze deweloperskim.
Dodatkowo na komputerze deweloperskim musisz mieć zainstalowane to oprogramowanie:
- Apache Maven w wersji 3.3.9 lub nowszej
- Java 8
Skonfiguruj
Aby skonfigurować komputer deweloperski do sprawdzania możliwości zbiorczych, wykonaj te czynności:
- Pobierz i rozpakuj skrypt do sprawdzania możliwości w przypadku wielu urządzeń (Java). Skrypt do sprawdzania możliwości przesyłania zbiorczego (zaloguj się, aby pobrać).
- Wykonaj czynności opisane w pliku README.
Przeprowadzanie zbiorczego sprawdzania możliwości
Aby przeprowadzić sprawdzenie zbiorcze:
- 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 zidentyfikowanymi przez siebie wartościami.
Zamień Tym Przykład AGENT_ID Identyfikator agenta RCS dla firm. welcome-botINPUT_FILE Ścieżka do wejściowego pliku CSV. input.csvOUTPUT_FILE Ścieżka do wyjściowego pliku CSV. output.csvNUM_OF_THREADS Liczba wątków przeznaczonych na sprawdzanie możliwości. 500START_INDEX Opcjonalnie: Wartość w pliku CSV, od której mają się rozpocząć sprawdzania. 5END_INDEX Opcjonalnie: Wartość w pliku CSV, po której należy zakończyć sprawdzanie. 500Po zakończeniu działania skryptu otwórz wyjściowy plik CSV, aby wyświetlić wyniki.