Umożliwia płynne logowanie użytkowników w grze przy jednoczesnym korzystaniu z własnego systemu kont. Dzięki interfejsom Recall API w usługach gier Google Play możesz połączyć konta w grze z kontem w usługach gier Google Play. Gdy użytkownik gra w Twoją grę na różnych urządzeniach (lub na tym samym urządzeniu po ponownym zainstalowaniu gry), możesz wysłać zapytanie o połączone konto w grze i uprościć proces logowania.
Jeśli masz zintegrowane interfejsy Recall API na Androidzie, te interfejsy Recall API powinny być Ci znane. Wszelkie integracje po stronie serwera z funkcją wycofywania usług gier Play mogą być ponownie wykorzystywane przez tytuły na PC, ponieważ są takie same na Androidzie i PC.
Wymagania wstępne
Dokończ konfigurowanie pakietu SDK.
Przeczytaj omówienie interfejsu API odzyskiwania danych logowania w usługach gier Play.
Dokończ konfigurowanie usług gier Google Play w Konsoli Play.
Krok 1. Dodaj identyfikator projektu Usług gier Play do pliku manifestu
Po zakończeniu konfiguracji usług gier Play w Konsoli Play gra będzie miała powiązany identyfikator projektu usług gier Play. Użyj tego identyfikatora projektu, który znajdziesz na stronie konfiguracji usług gier Play w Konsoli Play, aby zaktualizować manifest.xml w swojej grze.
Przykładowa zawartość manifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<Manifest version="1">
<Application>
<PackageName>com.example.package</PackageName>
<PlayGamesServices>
<ProjectId>123456789</ProjectId>
</PlayGamesServices>
</Application>
</Manifest>
Krok 2. Poproś o dostęp do funkcji Przywołanie podczas logowania
Gdy gra obsługuje proces logowania, np. dodawanie konta w grze, poproś o dostęp do funkcji Recall za pomocą metody GamesRecallClient::RequestRecallAccess().
To wywołanie zwraca identyfikator sesji, który jest używany przez backend do wykonywania wywołań po stronie serwera do Google w celu łączenia i rozłączania kont w grze z użytkownikiem usług Gier Play.
auto promise = std::make_shared<std::promise<RecallAccessResult>>();
games_recall_client.RequestRecallAccess(params, [promise](RecallAccessResult result) {
promise->set_value(std::move(result));
});
auto recall_access_result = promise->get_future().get();
if (recall_access_result.ok()) {
auto recall_session_id = recall_access_result.value().recall_session_id;
// Pass the recall session ID to your backend game server so it can query
// for an existing linked in-game account.
// - If you discover an existing linked in-game account, continue to sign-in
// the in-game account. This provides a seamless cross-device sign-in
// experience.
// - If there is not an existing linked in-game account, when the user
// completes the sign-in using your in-game account system record the
// account linking with Play Games Services Recall. This helps to provide
// a seamless cross-device sign-in experience when the user returns on a
// different device or after re-installing your game on the same device.
} else {
// Handle the error
}
Krok 3. Przetwórz identyfikator sesji wycofania
Gdy gra uzyska identyfikator sesji Recall i przekaże go do backendowego serwera gry, użyj interfejsów API REST usług Gier Play po stronie serwera, aby:
- Wyszukiwanie istniejących połączonych kont w grze za pomocą funkcji
recall.retrieveTokens - Dodawanie lub aktualizowanie połączonych kont w grze za pomocą
recall.linkPersona - Usuwanie połączonych kont w grze za pomocą
recall.unlinkPersona
Szczegółowy przewodnik po integracji po stronie serwera znajdziesz w dokumentacji dotyczącej używania interfejsu Recall API na serwerze gry.