Nutzer können sich nahtlos in Ihrem Spiel anmelden, während Sie Ihr eigenes Kontosystem weiterhin verwenden. Mit den Recall APIs der Play-Spieldienste können Sie In-Game-Konten mit einem Google Play-Spieldienste-Konto verknüpfen. Wenn ein Nutzer Ihr Spiel dann auf verschiedenen Geräten (oder auf demselben Gerät nach der Neuinstallation) spielt, können Sie das verknüpfte In-Game-Konto abfragen und den Anmeldevorgang optimieren.
Wenn Sie die Android Recall APIs bereits eingebunden haben, sollten Ihnen diese Recall APIs bekannt sein. Alle serverseitigen Integrationen mit Play-Spieldienste-Recall können für PC-Titel wiederverwendet werden, da sie sowohl für Android als auch für PC gleich sind.
Voraussetzungen
Lesen Sie die Übersicht zur Play Games Services Recall API.
Schließen Sie die Einrichtung der Google Play-Spieldienste in der Play Console ab.
Schritt 1: Play Spiele-Dienste-Projekt-ID im Manifest hinzufügen
Nachdem Sie die Einrichtung der Play-Spieldienste in der Play Console abgeschlossen haben, ist Ihrem Spiel eine Projekt-ID der Play-Spieldienste zugewiesen. Aktualisieren Sie die manifest.xml Ihres Spiels mit dieser Projekt-ID, die Sie in der Play Console auf der Konfigurationsseite der Play-Spieldienste finden.
Beispiel für manifest.xml-Inhalte:
<?xml version="1.0" encoding="utf-8"?>
<Manifest version="1">
<Application>
<PackageName>com.example.package</PackageName>
<PlayGamesServices>
<ProjectId>123456789</ProjectId>
</PlayGamesServices>
</Application>
</Manifest>
Schritt 2: Beim Anmelden Recall-Zugriff anfordern
Wenn Ihr Spiel einen Anmeldevorgang ausführt, z. B. ein Konto im Spiel hinzufügt, fordern Sie den Recall-Zugriff mit GamesRecallClient::RequestRecallAccess() an.
Dieser Aufruf gibt eine Sitzungs-ID zurück, die von Ihrem Backend verwendet wird, um serverseitige Aufrufe an Google zu senden, um Ihre In-Game-Konten mit einem Play-Spieldienste-Nutzer zu verknüpfen und die Verknüpfung aufzuheben.
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
}
Schritt 3: Recall-Sitzungs-ID verarbeiten
Sobald Ihr Spiel die Recall-Sitzungs-ID hat und sie an Ihren Backend-Spielserver übergeben wurde, können Sie die serverseitigen Play Games-REST-APIs verwenden, um:
- Nach vorhandenen verknüpften In-Game-Konten suchen mit
recall.retrieveTokens - Verknüpfte In-Game-Konten über
recall.linkPersonahinzufügen oder aktualisieren - Verknüpfte In-Game-Konten über
recall.unlinkPersonalöschen
Eine ausführlichere Anleitung zur serverseitigen Integration finden Sie in der Dokumentation zur Verwendung der Recall API auf Ihrem Gameserver.