Interfejs Recall API umożliwia grom zarządzanie połączeniami między użytkownikami usług gier Play a ich kontami w grze przez przechowywanie tokenów wycofywania na serwerach Google. Oto przykładowy scenariusz użycia interfejsu Recall API.
Użytkownik gra w grę, w której deweloper ma system tożsamości do śledzenia postępów użytkownika i loguje użytkowników w grze jednocześnie za pomocą usług gier Google Play i innych metod uwierzytelniania. W tym przykładzie użytkownik jest zalogowany na swoje konto w usługach gier Play Laura i tworzy konto w grze, korzystając z systemu tożsamości dewelopera o nazwie Racer94. Gdy użytkownik gra, serwer gry dewelopera synchronizuje jego postępy.
Osobno deweloper zapisuje w Google token wycofywania, który odpowiada kontu w grze użytkownika. Google automatycznie przechowuje ten token w profilu usług gier Play użytkownika.
Teraz użytkownik postanawia zagrać po raz pierwszy w grę na GPG na PC. Użytkownik jest automatycznie logowany na swoje konto w usługach gier Play, a klient gry sprawdza, czy są dostępne jakieś postępy. Serwer gry wysyła zapytanie do Google, aby sprawdzić, czy istnieją jakieś tokeny dla tego konta usług gier Play. Google odsyła token wycofywania, a serwer gry go używa, aby odszukać powiązane konto Racer94 użytkownika i przywrócić jego postępy. Ponieważ logowanie się przy użyciu usług gier Google Play nie wymaga problemów, aplikacja przywraca postępy użytkownika bez konieczności podawania nazwy użytkownika i hasła. Dodatkowo deweloper może użyć logowania w usługach gier Play za pomocą swojego dotychczasowego systemu tożsamości i zachować powiązanie między postępami gracza a jego kontem w usługach gier Play.
Jak widać w przykładzie powyżej, interfejs Recall API wykonuje 2 główne działania: przechowywanie tokena w Google, gdy użytkownik loguje się przy użyciu jednego z kont w grze, oraz pobieranie tokena użytkownika, by odzyskać jego konta w grze.
Oprócz tokenów wycofywania interfejs Recall API wymaga też stabilnego identyfikatora konta w grze (tzw. persona), aby egzekwować ograniczenia dotyczące mocy zbioru. Możesz traktować profil jako etykietę reprezentującą konto użytkownika w grze w systemie tożsamości dewelopera, a token wycofywania to klucz, który służy do przywracania konta użytkownika w grze. Nie można używać tych samych wartości profilu klienta i tokenów w różnych projektach usług gier Play. Tokeny wycofywania mogą się z czasem zmieniać, ale profil użytkownika powinien być stabilny w zależności od konta użytkownika w grze.
Reguły dotyczące mocy zbioru
Interfejs Recall API wymusza relację 1:1 między profilami usług gier Play a kontami w grze (regułami dotyczącymi mocy zbioru), gdzie 1 profil użytkownika można połączyć tylko z 1 profilem PGS, a 1 profil PGS można połączyć tylko z 1 profilem. Profil jest używany jako stabilny identyfikator konta w grze, ponieważ tokeny wycofywania mogą się z czasem zmieniać.
Profil klienta połączony z profilem usług gier Play również może się z czasem zmienić (ponieważ z nim powiązane są różne konta w grze).
Szczegółowe procedury techniczne dotyczące przechowywania i pobierania tokenów wycofywania
W tej sekcji omawiamy przepływ techniczny między klientem gry a serwerami z serwerami Google podczas przechowywania i pobierania tokenów wycofywania.
Krok 1. Zaloguj się na konto użytkownika usług gier Play i pobierz identyfikator sesji
Gra inicjuje pakiet SDK usług gier Play i próbuje zalogować użytkownika za pomocą tych usług.
Zakładając, że użytkownik jest zalogowany, wyślij żądanie identyfikatora sesji z pakietu SDK do gier w kliencie gry i poproś o token OAuth 2.0 z backendu OAuth Google. Identyfikator sesji i tokeny OAuth 2.0 są używane do komunikacji z backendem Gier Google.
Krok 2. Pobierz dowolny dostępny token wycofywania
Żądanie dowolnego powiązanego tokena wycofywania z kontem użytkownika usług gier Play. Jeśli token jest obecny, przejdź do kroku 3a i przywróć postęp. Jeśli jest to nowy użytkownik, który nie ma tokena, przejdź do kroku 3b i zapisz nowy token.
Krok 3a. Jeśli token jest dostępny, przywróć postęp
Jeśli token jest obecny, pobierz i odszyfruj go oraz przywróć dane użytkownika.
Krok 3b. Jeśli nie ma żadnego tokena, zapisz token
Ponieważ nie ma tokena, postęp nie zostanie przywrócony. Użytkownik loguje się w systemie tożsamości dewelopera lub tworzy nowe konto, jeśli takiego nie ma. Uwaga: nie chodzi o logowanie się za pomocą usług gier Google Play (co już zostało wykonane), ale przy użyciu systemu tożsamości dewelopera spoza tego typu usług.
Utwórz zaszyfrowany token wycofywania, który koduje konto użytkownika w grze, i wyślij go do Google wraz z identyfikatorem sesji i tokenem OAuth 2.0. Na tym etapie Google tworzy powiązanie między wysłanym tokenem wycofywania a kontem usług gier Play gracza.
Przepływy dotyczące użytkowników bez profilu usług gier Play
Korzystając z trybu bez profilu, możesz przechowywać tokeny wycofywania dla użytkownika, który nie utworzył jeszcze profilu usług gier Play. Należy jednak pamiętać o 2 ważnych kwestiach:
- Nie możesz pobrać tokenów użytkownika, który nie ma profilu usług gier Play. Gdy użytkownik próbuje zalogować się w grze za pomocą usług gier Play na innym urządzeniu, automatycznie wyświetla się prośba o jej utworzenie.
- Musisz przestrzegać dodatkowych wytycznych, aby otrzymać odpowiednie powiadomienie z opisem tych elementów i uzyskać odpowiednią zgodę użytkownika:
- Udostępniasz dane Google, aby umożliwić korzystanie z funkcji łączenia kont w Grach Play.
- Dostępność ustawień umożliwiających zarządzanie udostępnianiem, np. ustawień Gier Play.
- przetwarzanie takich danych zgodnie z Polityką prywatności Google;
Przechowywanie tokena i pary profili klientów
- Użytkownik bez profilu usług gier Play otwiera grę z włączonym cofaniem bez profilu.
- Pakiet SDK do gier uruchamia automatyczne logowanie, które kończy się niepowodzeniem, ponieważ użytkownik nie ma profilu usług gier Play.
- Pakiet SDK do gier wyświetla pasek powiadomień, który informuje użytkownika, że gra została zintegrowana z Google. Ten pasek powiadomień jest interaktywny – użytkownik może wyłączyć czułość, dopóki nie zostanie utworzony profil.
- Gra prosi o dostęp do wycofania. Pamiętaj, że usługi gier Play odrzucają żądania wycofania dostępu, gdy na urządzeniu są profile usług gier Play lub nie ma na nim żadnych kont Google. W takim przypadku gra powinna być kontynuowana bez korzystania z usług gier Play.
- Gdy użytkownik zaloguje się na konto w grze, gra tworzy dla niego parę tokena i personelu odpowiadającego mu kontu w grze. Gra przechowuje tę parę w usługach Google. Gra może zapisać więcej tokenów później, jeśli użytkownik zaloguje się na inne konta w grze.
Uruchamianie gry na nowym urządzeniu
- Użytkownik bez profilu usług gier Play otwiera grę z włączonym wycofywaniem bez profilu na urządzeniu.
- Gra rejestruje bezprofilowy token wycofywania, jak opisano w sekcji Przechowywanie pary tokena i profilu.
- Użytkownik otwiera tę samą grę na innym urządzeniu z taką samą konfiguracją konta.
- Pakiet SDK do gier aktywuje tworzenie profilu. Użytkownik może sprawdzić i odrzucić zapisane wcześniej tokeny wycofywania. W tym momencie użytkownik tworzy profil usług gier Play.
- Automatyczne logowanie w usługach gier Play zostanie zakończone, a gra uzyska stan uwierzytelnienia.
- Gra w zwykły sposób pobiera tokeny wycofywania dla użytkownika.
Dalsze kroki
Aby zintegrować interfejs Recall API z klientem i serwerem gier, postępuj zgodnie z tymi wskazówkami.