Mit der Recall API können Spiele Verknüpfungen zwischen Play-Spieldienste-Nutzern und ihren In-Game-Konten verwalten, indem sie Rückruftokens auf Google-Servern speichern. Hier ist ein Beispielszenario für die Verwendung der Recall API.
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.
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.
Der Nutzer entscheidet sich jetzt, das Spiel zum ersten Mal in den GPG auf dem PC zu spielen. Der Nutzer wird automatisch mit seinem Play-Spieldienste-Konto angemeldet und der Spieleclient 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 seinen Fortschritt wiederherzustellen. Da die Anmeldung über die Play-Spieldienste reibungslos abläuft, wird der Fortschritt des Nutzers von der App wiederhergestellt, ohne dass er einen Nutzernamen oder ein Passwort eingeben muss. Darüber hinaus 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.
Wie im obigen Beispiel gezeigt, werden von der Recall API zwei Hauptaktionen ausgeführt: das Speichern des Tokens bei Google, wenn sich ein Nutzer mit einem der In-Game-Konten anmeldet, und das Abrufen des Tokens für einen Nutzer, um dessen In-Game-Konten 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ätsbeschrä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 Play-Spieldienste-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 und Servern mit 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.
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.
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.
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.
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. Hinweis: Dabei handelt es sich nicht um die Anmeldung über die Play-Spieldienste (was bereits getan wurde), sondern mit dem Identitätssystem eines Entwicklers außerhalb der Play-Spieldienste.
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.
Abläufe für Nutzer ohne Play-Spieldienste-Profil
Du kannst Recall-Tokens für einen Nutzer speichern, der noch kein Play-Spieldienste-Profil erstellt hat, indem du den profillosen Modus verwendest. Es gibt jedoch zwei wichtige Einschränkungen:
- Für Nutzer ohne Play-Spieldienste-Profil kannst du keine Tokens abrufen. Die Profilerstellung wird automatisch aufgefordert, wenn der Nutzer versucht, sich auf einem zweiten Gerät mit den Play-Spieldiensten in deinem Spiel anzumelden.
- Sie müssen zusätzliche Richtlinien einhalten, damit Sie einen angemessenen Hinweis erhalten, in dem folgende Punkte beschrieben werden, und die entsprechende Einwilligung des Endnutzers einholen:
- Deine Weitergabe der Daten an Google, um die Funktion zur Verknüpfung des Play Spiele-Kontos zu aktivieren.
- Die Verfügbarkeit von Einstellungen zur Verwaltung dieser Freigabe, z. B. Play Spiele-Einstellungen.
- Die Verarbeitung solcher Daten gemäß der Datenschutzerklärung von Google.
Token und Persona-Paar speichern
- Ein Nutzer ohne Play-Spieldienste-Profil öffnet ein Spiel, bei dem profilloser Rückruf aktiviert ist.
- Das Games SDK löst eine automatische Anmeldung aus. Dies schlägt fehl, da der Nutzer kein Play-Spieldienste-Profil hat.
- Das Games SDK zeigt eine Snackbar an, die den Nutzer darüber informiert, dass das Spiel in Google integriert ist. Diese Snackbar ist entscheidungsrelevant – der Nutzer kann die Rückruffunktion deaktivieren, bis ein Profil erstellt wird.
- Das Spiel bittet den Zugriff zurückzuziehen. Beachte, dass PGS Rückrufanfragen ablehnen, wenn auf dem Gerät Play-Spieldienste-Profile oder keine Google-Konten auf dem Gerät vorhanden sind. In diesem Fall sollte das Spiel ohne PGS fortgesetzt werden.
- Nachdem sich der Nutzer mit einem spielinternen Konto angemeldet hat, erstellt das Spiel für den Nutzer ein Token und eine Persona, die seinem In-Game-Konto entspricht. Das Spiel speichert dieses Paar bei Google. Das Spiel speichert möglicherweise später weitere Tokens, wenn sich der Nutzer in anderen In-Game-Konten anmeldet.
Ein Spiel auf einem neuen Gerät starten
- Ein Nutzer ohne Play-Spieldienste-Profil öffnet ein Spiel, bei dem auf einem Gerät der profillose Rückruf aktiviert ist.
- Das Spiel zeichnet ein profilloses Recall-Token auf, wie unter Token/Persona-Paar speichern beschrieben.
- Der Nutzer öffnet dasselbe Spiel auf einem anderen Gerät mit demselben Konto.
- Das Games SDK löst die Profilerstellung aus. Der Nutzer kann zuvor gespeicherte Recall-Tokens prüfen und ablehnen. Der Nutzer erstellt jetzt ein Play-Spieldienste-Profil.
- Die automatische Anmeldung in den Play-Spieldiensten ist abgeschlossen und das Spiel erhält den Status „Authentifizierung“.
- Das Spiel ruft wie gewohnt Recall-Tokens für den Nutzer ab.
Nächste Schritte
Folge dieser Anleitung, um die Recall API in deinen Client und Gameserver zu integrieren.