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ąć prezentowania interakcji, które są trudne lub niemożliwe do wykonania przez użytkownika.
Jeśli urządzenie użytkownika w ogóle 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 prośbę o sprawdzenie możliwości i czeka na odpowiedź. Informacje o
formatowaniu i opcjach 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 listę funkcji obsługiwanych przez określone urządzenie w formacie JSON.
{ "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 w tym czasie połączyło się z naszym serwerem RCS. Urządzenia online i obsługujące RCS łączą 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, a 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 usługa RCS jest wyłączona przez operatora lub producenta, albo jeśli karta SIM pozostanie nieużywana, usługa RCS nadal będzie próbować dostarczać wiadomości na poprzednio powiązane urządzenie przez maksymalnie 31 dni.
Oto przyczyny błędów 404:
Nie można skontaktować się z użytkownikiem za pomocą 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 połączeniu, o ile numer MSISDN połączył się z usługą RCS w ciągu ostatnich 31 dni.
Zbiorcze sprawdzanie możliwości
Aby oszacować liczbę użytkowników, do których można dotrzeć za pomocą RBM, przeprowadź zbiorcze sprawdzenie możliwości. Sprawdzanie zbiorcze wskazuje, czy numer telefonu jest osiągalny, ale nie informuje, które funkcje są obsługiwane przez dany numer.
W przypadku każdego zbiorczego sprawdzenia możliwości musisz podać od 500 do 10 000 unikalnych numerów telefonów. Aby sprawdzić więcej numerów, przeprowadź kilka sprawdzeń. Możesz wykonywać do 600 połączeń na minutę. Aby używać plików CSV jako formatu wejściowego, użyj skryptu zbiorczego sprawdzania możliwości. Sprawdzanie zbiorcze odczytuje dane z pamięci podręcznej możliwości, która jest aktualizowana przez klientów w sposób naturalny za pomocą RCS. Agenci nie proszą bezpośrednio o informacje o możliwościach każdego urządzenia. Z tego powodu wyniki mogą być nieaktualne.
Zbiorcze sprawdzanie możliwości zwraca listę numerów, do których Twój agent może dotrzeć w sieciach operatorów, w których jest uruchomiony, a także szacunki łącznej liczby 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 sprawdzenie obejmują listę numerów telefonów
do których można natychmiast dotrzeć w sieciach operatorów, w których uruchomiono agenta
(reachableUsers), odpowiedzi zawierają też 2 wartości, które mogą pomóc w oszacowaniu
łącznej liczby użytkowników, do których można dotrzeć we wszystkich sieciach.
Jak to działa
Gdy Twój agent przeprowadza zbiorcze sprawdzenie możliwości, RBM losowo próbkuje ok. 75% tych numerów, aby sprawdzić wszystkie sieci operatorów (informacje te są podawane w polu totalRandomSampleUserCount). RBM zwraca też liczbę numerów, do których można dotrzeć za pomocą RBM, z próbki losowej, niezależnie od stanu uruchomienia agenta w sieci operatora (reachableRandomSampleUserCount). Dzieląc reachableRandomSampleUserCount przez totalRandomSampleUserCount, możesz oszacować odsetek numerów, do których Twój agent mógłby dotrzeć, gdyby był uruchomiony we wszystkich sieciach operatorów.
Jeśli na przykład w zbiorczym sprawdzeniu możliwości określisz 5000 numerów telefonów, a RBM losowo spróbuje ok. 75% określonych numerów, wartość totalRandomSampleUserCount może wynosić 3750. Jeśli wartość reachableRandomSampleUserCount wynosi 3000, oznacza to, że do 80% próbek numerów można było dotrzeć.
Uwzględnianie próbkowania losowego
Testowanie próbek losowych może prowadzić do różnic w procentach. Aby uwzględnić efekty próbkowania losowego, przeprowadzaj zbiorcze sprawdzanie możliwości z większą liczbą numerów telefonów. Możesz też przeprowadzać sprawdzanie z tymi samymi partiami numerów kilka razy, a następnie uśrednić 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ź. Informacje o
formatowaniu i opcjach 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 zbiorcze sprawdzenie możliwości
Po przeprowadzeniu zbiorczego sprawdzenia 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ć w sieciach operatorów, w których uruchomiono agenta. |
totalRandomSampleUserCount
|
Liczba losowo wybranych numerów. Zwykle ok. 75% określonych numerów. |
reachableRandomSampleUserCount
|
Liczba numerów z próbki losowej, do których można dotrzeć za pomocą RBM we wszystkich sieciach operatorów, niezależnie od tego, w których sieciach agent jest uruchomiony. Ta liczba służy do podawania przybliżonego szacunku łącznej liczby użytkowników, do których można dotrzeć we wszystkich sieciach operatorów. |
reachableUsersMap
|
Tylko dane wyjściowe. Mapa identyfikatorów operatorów i listy użytkowników, do których można dotrzeć w danej sieci. To pole jest wypełniane tylko w przypadku numerów telefonów w Stanach Zjednoczonych. |
Narzędzie: skrypt zbiorczego sprawdzania możliwości
The Skrypt zbiorczego sprawdzania możliwości (Zaloguj się, aby pobrać) przeprowadza zbiorcze sprawdzanie możliwości, używając plików CSV jako formatu wejściowego i wyjściowego. Skrypt analizuje plik CSV z numerami MSISDN i używa pakietu RBM SDK do sprawdzenia 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ąć ok. 1 tys. 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 sprawdzenia możliwości, pobierz te informacje:
- ścieżka do pliku CSV z numerami MSISDN, na których mają być przeprowadzane sprawdzenia możliwości;
- ścieżka do klucza konta usługi agenta na komputerze używanym do programowania.
Dodatkowo na komputerze deweloperskim musisz mieć zainstalowane te oprogramowanie:
- Apache Maven 3.3.9 lub nowszy;
- Java 8.
Skonfiguruj
Aby skonfigurować komputer używany do programowania na potrzeby zbiorczego sprawdzenia możliwości:
- Pobierz i rozpakuj Skrypt zbiorczego sprawdzania możliwości (zaloguj się, aby pobrać).
- Postępuj zgodnie z instrukcjami w pliku README.
Przeprowadź zbiorcze sprawdzenie możliwości
Aby przeprowadzić zbiorcze sprawdzenie:
- 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 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, które mają być przeznaczone na sprawdzanie możliwości. 500START_INDEX Opcjonalnie. Wartość w pliku CSV, od której ma się rozpocząć sprawdzanie. 5END_INDEX Opcjonalnie. Wartość w pliku CSV, po której ma się zakończyć sprawdzanie. 500Gdy skrypt się zakończy, otwórz wyjściowy plik CSV, aby wyświetlić wyniki.