Logowanie się w Usługach gier Play zapewnia tożsamość gracza, która jest tożsamością na poziomie platformy i dotyczy graczy na Androida. Ta tożsamość pomaga budować więź między grą a graczem. Gracze chętniej logują się przy użyciu tej tożsamości niż w przypadku innych scentralizowanych systemów.
Poza tym logowanie zapewnia silny, spójny identyfikator, który możesz wykorzystać jako klucz do systemu zapisywania danych w Cloud. Zapisywanie w chmurze jest bardzo cenione, ponieważ umożliwia graczom:
- Wznów od miejsca, w którym przerwano odtwarzanie, jeśli użytkownik zmieni lub zresetuje urządzenie
- grać na wielu urządzeniach (np. na innym telefonie lub Chromebooku);
- Odinstaluj i ponownie zainstaluj grę.
Możesz użyć tożsamości Play Games Services jako klucza do własnej rozwiązania do zapisywania w chmurze lub skorzystać z bezpłatnej usługi Zapisane gry.
Usługi Gier Play (PGS) obsługują logowanie automatyczne, czyli bezproblemowy sposób logowania graczy, a także logowanie ręczne, które wymaga tylko jednego kliknięcia. Ten dokument opisuje te różne metody logowania.
Zalecany proces logowania
Aby zalogować graczy w grze, użyj tego procesu logowania:
- Podczas uruchamiania gry spróbuj użyć opcji Automatyczne logowanie, aby automatycznie zalogować gracza.
- Jeśli automatyczne logowanie nie działa, a urządzenie użytkownika jest online, spróbuj ręczne logowanie.
- Jeśli użytkownik odrzuci ręczne logowanie, zapamiętaj jego wybór i nie wyświetlaj ponownie opcji ręcznego logowania, ale nadal próbuj logować się automatycznie podczas uruchamiania.
Upewnij się też, że użytkownicy mogą zalogować się w grze za pomocą konta usług gier Google Play za pomocą dedykowanego, łatwego do znalezienia przycisku.
Logowanie automatyczne
Logowanie automatyczne pozwala użytkownikom na zalogowanie się w grze bez żadnych problemów – jest to automatyczne. Jeśli Twoja gra wymaga logowania się użytkownika, a ustawienie automatycznego logowania jest włączone (w aplikacji Usługi gier Play), otrzymasz dane logowania do PGS, a użytkownik zobaczy proces logowania do PGS.
Logowanie automatyczne to ustawienie, które użytkownicy mogą kontrolować. Użytkownicy mogą wybrać, czy chcą automatycznie logować się we wszystkich grach, czy mają być o to pytani za każdym razem.
Logowanie ręczne
Jeśli użytkownik nie zaloguje się automatycznie w grze, możesz poprosić go o logowanie ręczne. Użytkownicy mogą zalogować się jednym kliknięciem w oknie dialogowym wyświetlanym u góry gry.
Zezwalanie na wyskakujące okienka usług gier Play w celu prawidłowego logowania
Podczas korzystania z PGS użytkownicy muszą wiedzieć, że są zalogowani. Aby to zrobić, wyświetl proces logowania w usługach gier Play.
Aby wyświetlić proces logowania, wywołaj metodę setViewForPopups()
klasy GamesClient
podczas uruchamiania gry. Jest to kluczowe dla zapewnienia prawidłowego działania aplikacji.
Zakresy OAuth i usługi gier Play
PGS korzysta z systemu OAuth, aby umożliwić użytkownikom przyznawanie grze dostępu do ich kont. Zakresy OAuth to uprawnienia, o które możesz prosić jako deweloper. Jeśli użytkownik przyzna te uprawnienia, gra będzie mogła wywoływać określone interfejsy API w jego imieniu, a także uzyska dostęp do niektórych części jego konta Google.
Usługi gier Play ma unikalny zakres dla gier (games-lite
) i korzysta z innego zakresu (drive.appdata
), jeśli Twoja gra używa funkcji zapisanych gier. Funkcja zapisanych gier daje dostęp do konta Dysku Google użytkownika, na którym są przechowywane dane gry.
Gra może wymagać dostępu do dowolnych funkcji, które są potrzebne do zapewnienia użytkownikom wrażeń z gry. Gra może poprosić o wszystkie potrzebne zakresy uprawnień w jednym pakiecie, ograniczając liczbę próśb o dostęp do konta Google. Takie podejście ma jednak poważną wadę. Jeśli żądasz więcej zakresów związanych z PGS, automatyczne logowanie się nie powiedzie. Automatyczne logowanie jest najlepszym sposobem na to, aby gracze logowali się w Twojej grze.
Sprawdzoną metodą jest używanie żądań z rosnącym zakresem. W pierwszej prośbie gra powinna poprosić o zakresy tylko do PGS, a w późniejszym, bardziej odpowiednim momencie – o inne zakresy.
Dostęp OAuth jest przyznawany na osobnym ekranie w przypadku każdego zakresu. Dzięki temu użytkownicy mogą szczegółowo określić, do których zakresów przyznać dostęp. Dzięki automatycznemu logowaniu z zakresem dostępu tylko do PGS użytkownicy nie będą musieli reagować na żadne prompty OAuth, co ułatwi logowanie.
Obsługa wielu metod logowania
Usługi gier Play zapewniają tożsamość gracza na urządzeniach z Androidem, ale nie muszą być jedyną tożsamością powiązaną z użytkownikami. Możesz logować graczy za pomocą usług gier Play, identyfikatora sieci społecznościowej i własnego systemu identyfikatorów w grze jednocześnie. Każdy z tych systemów ma unikalną wartość dla Ciebie i Twoich graczy, a wszystkie razem mogą zapewnić świetne wrażenia graczom na Androidzie.
Bezpieczne pobieranie i weryfikowanie tożsamości gracza na potrzeby integracji z systemem backend
Możesz poprosić o kod autoryzacji serwera, aby umożliwić serwerowi bezpośrednie komunikowanie się z serwerami Usług gier Play za pomocą interfejsu REST API z uprawnieniami logowanego gracza. Umożliwia to bezpośredni dostęp do identyfikatora, profilu i innych informacji o graczu (np. listy znajomych, jeśli użytkownik ma uprawnienia). Jeśli na zapleczu przechowujesz identyfikatory graczy, znajomych lub inne powiązane dane, musisz użyć tej metody, aby wyeliminować możliwość manipulowania tymi polami po stronie urządzenia.
Ponadto w przypadku niektórych starszych gier i graczy identyfikator gracza zwracany przez pakiet SDK Androida może być inny niż ten, który widzą inni gracze, gdy wyświetlają tego gracza w tej samej grze. Jest to szczególnie ważne w przypadku listy znajomych. Jednak player_id
zwracany w interfejsie REST API jest zawsze spójny i zawsze jest to identyfikator widoczny dla innych graczy.
Więcej informacji znajdziesz w dokumentacji dotyczącej dostępu offline i interfejsu API REST.
Wdrożenie po stronie klienta
Aby dowiedzieć się, jak wdrożyć obsługę logowania na Androidzie, przeczytaj artykuł Logowanie w grach na Androida.