Recall von Play-Spieldiensten in Ihre App einbinden

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

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:

Eine ausführlichere Anleitung zur serverseitigen Integration finden Sie in der Dokumentation zur Verwendung der Recall API auf Ihrem Gameserver.