Integrowanie funkcji wycofywania usług gier Play z aplikacją

Bezproblemowe logowanie użytkowników w grze przy jednoczesnym korzystaniu z własnego systemu kont. Dzięki interfejsom API usługi przywracania danych w Usługach gier Google Play możesz łączyć konta w grze z kontami w Usługach gier Google Play. Gdy użytkownik będzie grał w Twoją grę na różnych urządzeniach (lub na tym samym urządzeniu po ponownej instalacji gry), możesz wysłać zapytanie do połączonego konta w grze i uprościć proces logowania.

Jeśli masz już integrację z interfejsami Recall API na Androidzie, interfejsy Recall API powinny być Ci znane. Wszelkie integracje po stronie serwera z usługami gier Play mogą być ponownie używane w przypadku tytułów na PC, ponieważ są takie same na Androida i PC.

Wymagania wstępne

Krok 1. Dodaj identyfikator projektu Usług gier Play w pliku manifestu.

Po zakończeniu konfiguracji usług gier Play w Konsoli Play Twoja gra ma teraz powiązany identyfikator projektu usług gier Play. Za pomocą tego identyfikatora projektu, który znajdziesz na stronie konfiguracji usługi gier w Konsoli Play, zaktualizuj manifest.xml w swojej grze.

Przykładowe treści 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 przywrócenie dostępu podczas logowania

Gdy gra obsługuje proces logowania, np. dodawanie konta w grze, poproś o odzyskanie dostępu za pomocą GamesRecallClient::RequestRecallAccess().

To wywołanie zwraca identyfikator sesji, który jest używany przez backend do wykonywania wywołań do Google po stronie serwera w celu łączenia i rozłączania kont w grze z kontami użytkowników w usługach Gry 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 przywołania

Gdy gra otrzyma identyfikator sesji Recall i przekaże go do backendowego serwera gry, możesz użyć interfejsów REST po stronie serwera w Grach Play, aby:

Bardziej szczegółowy przewodnik dotyczący integracji po stronie serwera znajdziesz w dokumentacji o sposobach korzystania z interfejsu Recall API na serwerze gry.