Testy możliwości

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 List({"+12223334444", "+12223334444"}));
Ten kod korzysta z przykładowego agenta RBM.

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:

Skonfiguruj

  1. Na komputerze deweloperskim pobierz i rozpakuj plik Skrypt zbiorczej kontroli możliwości (Zaloguj się, aby pobrać).
  2. Postępuj zgodnie z instrukcjami podanymi w pliku README.

Przeprowadzanie zbiorczego sprawdzania

  1. W terminalu przejdź do katalogu głównego skryptu.
  2. 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
  3. Po zakończeniu działania skryptu otwórz wyjściowy plik CSV, aby wyświetlić wyniki.