Recall API

Mit der Recall API können Spiele Play-Spieldienste als Ergänzung zu ihren vorhandenen Anmeldemechanismen (z. B. Google Log-in) nutzen und die Anmeldeinformationen der Spieler nahtlos auf ihren Geräten synchronisieren, um die Abwanderung von Onboarding zu verringern und die D1-Bindung zu erhöhen. Die API verwaltet Verknüpfungen zwischen dem Play-Spieldienste-Konto (PGS) eines Nutzers und seinen In-Game-Konten, indem Rückruftokens auf Google-Servern gespeichert werden. Hier ist ein Beispielszenario für den Einsatz der Recall API:

  1. Ein Nutzer spielt ein Spiel, bei dem der Entwickler ein Identitätssystem hat, um den Nutzerfortschritt zu verfolgen, und PGS parallel zu anderen Authentifizierungsmethoden verwendet, um Nutzer bei ihrem Spiel anzumelden. In diesem Beispiel ist ein Nutzer in seinem Play-Spieldienste-Konto Laura angemeldet und erstellt ein In-Game-Konto mit dem Identitätssystem des Entwicklers namens Racer94. Während der Nutzer das Spiel spielt, synchronisiert der Gameserver des Entwicklers seinen Fortschritt.

    Der Nutzer ist über die Play-Spieldienste und ein In-Game-Konto angemeldet.

  2. Außerdem speichert der Entwickler ein Recall-Token bei Google, das dem In-Game-Konto des Nutzers entspricht. Google speichert dieses Rückruftoken automatisch im Play-Spieldienste-Profil des Nutzers.

    Gameserver speichert Recall-Token auf Google-Servern

  3. Der Nutzer entscheidet sich jetzt, das Spiel zum ersten Mal auf Google Play Spiele auf dem PC zu spielen. Der Nutzer wird automatisch mit seinem Play-Spieldienste-Konto angemeldet und der Spielclient prüft, ob für diesen Play-Spieldienste-Nutzer Fortschritte verfügbar sind. Der Spieleserver fragt dann bei Google nach, ob Tokens für dieses Play-Spieldienste-Konto vorhanden sind. Da dies vorhanden ist, sendet Google das Recall-Token zurück und der Spieleserver verwendet dieses Token, um das mit dem Nutzer verknüpfte Konto Racer94 zu finden und den Fortschritt wiederherzustellen. Da die Anmeldung über die Play-Spieldienste reibungslos funktioniert, wird der Fortschritt des Nutzers von der App wiederhergestellt, ohne dass er einen Nutzernamen oder ein Passwort eingeben muss. Außerdem kann der Entwickler PGS Log‐in mit seinem vorhandenen Identitätssystem verwenden und sich darauf verlassen, dass Google die Verknüpfung zwischen dem Spielerfortschritt und seinem PGS-Konto speichert.

    Der Spieleserver stellt den Fortschritt mit dem Recall-Token wieder her.

Wie im Beispiel oben gezeigt, werden von der Recall API zwei Hauptaktionen ausgeführt:

  • Speichern des Tokens bei Google, wenn sich ein Nutzer mit einem der spielinternen Konten anmeldet.
  • Abrufen des Tokens für einen Nutzer, um sein In-Game-Konto wiederherzustellen.

Zusätzlich zu Recall-Tokens benötigt die Recall API auch eine stabile Kennung, die dem In-Game-Konto entspricht, genannt Persona, um Kardinalitätseinschränkungen zu erzwingen. Sie können sich eine Persona als das Label vorstellen, das das In-Game-Konto des Nutzers im Identitätssystem des Entwicklers repräsentiert, und das Recall-Token als Schlüssel, mit dem das In-Game-Konto des Nutzers im Spiel wiederhergestellt wird. Persona- und Tokenwerte dürfen nicht in verschiedenen PGS-Projekten wiederverwendet werden. Auch wenn sich Recall-Tokens im Laufe der Zeit ändern können, sollte eine Persona gemäß dem In-Game-Konto des Nutzers stabil sein.

Kardinalitätsregeln

Die Recall API erzwingt eine 1:1-Beziehung zwischen Play-Spieldienste-Profilen und In-Game-Konten (auch als Kardinalitätsregeln bezeichnet). Dabei kann eine Persona nur mit einem Play-Spieldienste-Profil und ein Play-Spieldienste-Profil nur mit einer einzigen Persona verknüpft werden. Die Persona wird als stabile Kennung für ein In-Game-Konto verwendet, da sich Recall-Tokens im Laufe der Zeit ändern können.

Die mit einem Play-Spieldienste-Profil verknüpfte Persona kann sich im Laufe der Zeit auch ändern, da verschiedene In-Game-Konten mit dem Play-Spieldienste-Profil verknüpft sind.

Detaillierte technische Abläufe zum Speichern und Abrufen der Recall-Tokens

In diesem Abschnitt wird der technische Ablauf zwischen dem Spieleclient, dem Spieleserver und den Google-Servern beim Speichern und Abrufen von Recall-Tokens beschrieben:

Schritt 1: PGS-Nutzer anmelden und Sitzungs-ID abrufen

Das Spiel initialisiert das PGS SDK und versucht, den Nutzer über die Play-Spieldienste anzumelden.

Nutzer meldet sich über Play-Spieldienste an

Wenn der Nutzer angemeldet ist, fordern Sie vom Games SDK auf dem Spieleclient eine Sitzungs-ID und ein OAuth 2.0-Token aus dem OAuth-Back-End von Google an. Die Sitzungs-ID und die OAuth 2.0-Tokens werden für die Kommunikation mit dem Google Games-Back-End verwendet.

Der Entwickler fordert eine Sitzungs-ID an

Schritt 2: Verfügbares Recall-Token abrufen

Anforderung eines mit dem Konto des Play-Spieldienste-Nutzers verknüpften Rückruftokens. Wenn ein Token vorhanden ist, fahren Sie mit Schritt 3a fort und stellen Sie den Fortschritt wieder her. Wenn dies ein neuer Nutzer ist und kein Token vorhanden ist, fahren Sie mit Schritt 3b fort und speichern Sie ein neues Token.

Der Entwickler ruft ein Recall-Token ab,

Schritt 3a: Wenn Token vorhanden ist, Fortschritt wiederherstellen

Wenn ein Token vorhanden ist, rufen Sie es ab und entschlüsseln Sie es und stellen Sie die Nutzerdaten wieder her.

Der Entwickler stellt Daten aus dem Recall-Token wieder her

Schritt 3b: Token speichern, wenn kein Token vorhanden ist

Da kein Token vorhanden ist, wird kein Fortschritt wiederhergestellt. Der Nutzer meldet sich mit dem Identitätssystem des Entwicklers an oder erstellt ein neues Konto, falls noch keines vorhanden ist.

Der Nutzer meldet sich mit seinem
In-Game-Konto an

Erstelle ein verschlüsseltes Recall-Token, das das In-Game-Konto des Nutzers codiert, und sende es zusammen mit der Sitzungs-ID und dem OAuth 2.0-Token an Google. An dieser Stelle erstellt Google eine Verknüpfung zwischen dem gesendeten Recall-Token und dem Play-Spieldienste-Konto des Spielers.

Entwickler speichert Recall-Token

Nächste Schritte

Folgen Sie der Implementierungsanleitung, um die Recall API in Ihren Client und Gameserver zu integrieren.