Integrare il richiamo dei servizi per i giochi di Play nella tua app

Consenti agli utenti di accedere facilmente al tuo gioco continuando a utilizzare il tuo sistema di account. Con le API Play Games Services Recall puoi collegare gli account in-game a un account Google Play Services, quindi quando un utente gioca al tuo gioco su diversi dispositivi (o sullo stesso dispositivo dopo aver reinstallato il gioco), puoi eseguire query sull'account in-game collegato e semplificare il flusso di accesso.

Se hai eseguito l'integrazione con le API di richiamo di Android, queste API di richiamo dovrebbero essere familiari. Qualsiasi integrazione lato server con Recall dei servizi per i giochi di Play può essere riutilizzata dai titoli per PC, in quanto sono uguali su Android e PC.

Prerequisiti

Passaggio 1: aggiungi l'ID progetto Play Services per i giochi nel file manifest

Dopo aver completato la configurazione dei servizi per i giochi di Play in Play Console, il tuo gioco ora ha un ID progetto dei servizi per i giochi di Play associato. Utilizza questo ID progetto, che puoi trovare nella pagina di configurazione dei servizi per i giochi di Google Play in Play Console, per aggiornare manifest.xml del tuo gioco.

Esempio di contenuti 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>

Passaggio 2: richiedi l'accesso con Avviso di richiamo al momento dell'accesso

Quando il tuo gioco gestisce un flusso di accesso, ad esempio l'aggiunta di un account in-game, richiedi l'accesso con Recall utilizzando GamesRecallClient::RequestRecallAccess().

Questa chiamata restituisce un ID sessione che viene utilizzato dal tuo backend per effettuare chiamate lato server a Google per il collegamento e lo scollegamento dei tuoi account in-game con un utente di Play Services.

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
}

Passaggio 3: elabora l'ID sessione di Recall

Una volta che il gioco ha l'ID sessione di richiamo e lo ha passato al server di gioco di backend, utilizza le API REST lato server di Play Giochi per:

Per una guida più dettagliata sull'integrazione lato server, consulta la documentazione su come utilizzare l'API Recall all'interno del tuo server di gioco.