Consente agli utenti di accedere facilmente al tuo gioco continuando a utilizzare il tuo sistema di account. Con le API Recall di Play Games Services puoi collegare gli account di gioco a un account Play Games Services. In questo modo, quando un utente gioca al tuo gioco su dispositivi diversi (o sullo stesso dispositivo dopo aver reinstallato il gioco), puoi eseguire query sull'account di gioco collegato e semplificare il flusso di accesso.
Se hai eseguito l'integrazione con le API Android Recall, queste API Recall dovrebbero esserti familiari. Qualsiasi integrazione lato server con il richiamo dei servizi per i giochi di Play può essere riutilizzata dai titoli per PC, in quanto è la stessa sia su Android che su PC.
Prerequisiti
Completa la configurazione dell'SDK.
Leggi la panoramica dell'API Play Games Services Recall.
Completa la configurazione dei servizi per i giochi di Google Play in Play Console.
Passaggio 1: aggiungi l'ID progetto di Play Games Services nel 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. Utilizzando questo ID progetto,
che si trova nella pagina di configurazione
dei servizi per i giochi di Play Console, aggiorna
il manifest.xml del tuo gioco.
Contenuti di esempio di 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 a Recall durante l'accesso
Quando il gioco gestisce un flusso di accesso, ad esempio l'aggiunta di un account in-game, richiedi l'accesso a Recall utilizzando
GamesRecallClient::RequestRecallAccess().
Questa chiamata restituisce un ID sessione utilizzato dal backend per effettuare chiamate lato server a Google per collegare e scollegare gli account in-game a un utente dei servizi per i giochi di 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
}
Passaggio 3: elabora l'ID sessione di richiamo
Una volta che il gioco ha l'ID sessione di Recall e lo ha passato al server di gioco backend, utilizza le API REST lato server di Play Giochi per:
- Query per account in-game collegati esistenti utilizzando
recall.retrieveTokens - Aggiungi o aggiorna gli account di gioco collegati utilizzando
recall.linkPersona - Elimina gli account in-game collegati utilizzando
recall.unlinkPersona
Per una guida più dettagliata che illustra l'integrazione lato server, consulta la documentazione su come utilizzare l'API Recall nel server di gioco.