L'API Recall permet aux jeux de gérer les liens entre les utilisateurs des services de jeux Play (Play Games Services ou PGS) et leurs comptes de jeu en stockant des jetons de rappel auprès des serveurs Google. Voici un exemple d'utilisation de l'API Recall.
Un utilisateur joue à un jeu dans lequel le développeur a mis en place un système d'identité permettant au joueur de suivre sa progression. Ce développeur utilise PGS en parallèle avec d'autres méthodes d'authentification pour connecter les utilisateurs à son jeu. Dans cet exemple, une utilisatrice est connectée à son compte PGS (Laura) et crée un compte dans le jeu (Racer94) avec le système d'identité du développeur. Lorsque l'utilisatrice joue au jeu, le serveur de jeu du développeur synchronise sa progression.
Par ailleurs, le développeur enregistre un jeton de rappel auprès de Google, qui correspond au compte de jeu de l'utilisatrice. Google stocke automatiquement ce jeton de rappel dans le profil PGS de l'utilisatrice.
L'utilisatrice décide maintenant de jouer pour la première fois au jeu sur les services de jeux Google Play sur PC. L'utilisatrice est automatiquement connectée avec son compte PGS et le client du jeu vérifie si une progression est disponible pour cette utilisatrice PGS. Le serveur de jeu interroge ensuite Google pour savoir s'il existe des jetons pour ce compte PGS. Comme c'est le cas, Google renvoie le jeton de rappel et le serveur de jeu l'utilise pour trouver le compte Racer94 associé à l'utilisatrice et restaurer sa progression. La connexion avec PGS étant une expérience fluide, la progression de l'utilisatrice est restaurée par l'application sans que l'utilisatrice n'ait à saisir de nom d'utilisateur ni de mot de passe. De plus, le développeur peut utiliser la connexion à PGS avec son système d'identité existant, et s'appuyer sur Google pour stocker le lien entre la progression de la joueuse et son compte PGS.
Comme indiqué dans l'exemple précédent, l'API Recall effectue deux actions principales:
Stocker le jeton auprès de Google lorsqu'un utilisateur se connecte avec l'un des comptes de jeu.
Récupération du jeton d'un utilisateur afin de restaurer ses comptes de jeu
En plus des jetons de rappel, l'API Recall nécessite aussi un identifiant stable correspondant au compte de jeu, appelé persona, pour appliquer les contraintes de cardinalité. Vous pouvez considérer le persona comme le libellé qui représente le compte de jeu de l'utilisateur au sein du système d'identité du développeur, et le jeton de rappel comme une clé permettant de restaurer le compte de jeu de l'utilisateur dans le jeu. Les valeurs des personas et des jetons ne doivent pas être réutilisées dans différents projets PGS. Par ailleurs, bien que les jetons de rappel puissent être modifiés au fil du temps, un persona doit rester stable par rapport au compte de l'utilisateur dans le jeu.
Règles de cardinalité
L'API Recall applique une relation individuelle entre les profils PGS et les comptes de jeu (appelés règles de cardinalité), c'est-à-dire qu'un persona ne peut être lié qu'à un seul profil PGS et vice-versa. Le persona sert d'identifiant stable pour un compte de jeu, car les jetons de rappel peuvent changer au fil du temps.
Le persona associé à un profil PGS peut également être modifié au fil du temps (car différents comptes de jeu sont liés au profil PGS).
Flux techniques pour le stockage et la récupération des jetons de rappel
Cette section décrit le flux technique entre le client de jeu et les serveurs Google lors du stockage et de la récupération des jetons de rappel.
Étape 1 : Connecter l'utilisateur PGS et récupérer l'ID de session
Le jeu initialise le SDK de PGS et tente de connecter l'utilisateur à PGS.
En supposant que l'utilisateur est connecté, demandez un ID de session au SDK Jeux sur le client de jeu, puis demandez un jeton OAuth 2.0 au backend OAuth de Google. L'ID de session et les jetons OAuth 2.0 permettent de communiquer avec le backend de Jeux Google.
Étape 2 : Récupérer tout jeton de rappel disponible
Demandez tout jeton de rappel associé au compte PGS de l'utilisateur. Si un jeton est présent, passez à l'étape 3a et restaurez la progression. Sinon, s'il s'agit d'un nouvel utilisateur et qu'aucun jeton n'est présent, passez à l'étape 3b et stockez un nouveau jeton.
Étape 3a : Si un jeton est présent, restaurer la progression
Si un jeton est présent, récupérez-le et déchiffrez-le, puis restaurez les données de l'utilisateur.
Étape 3b : En l'absence de jeton, en stocker un
Comme aucun jeton n'est présent, aucune progression n'est restaurée. L'utilisateur se connecte au système d'identité du développeur ou crée un compte s'il n'en possède pas. Remarque : il ne s'agit pas de se connecter à PGS (cela a déjà été fait), mais au système d'identité d'un développeur en dehors de PGS.
Créez un jeton de rappel chiffré qui encode le compte de jeu de l'utilisateur, puis envoyez-le à Google avec l'ID de session et le jeton OAuth 2.0. À ce stade, Google crée une association entre le jeton de rappel envoyé et le compte PGS du joueur.
Flux pour les utilisateurs sans profil de services de jeux Play
Vous pouvez stocker des jetons de rappel pour un utilisateur qui n'a pas encore créé de profil de services de jeux Play en utilisant le mode sans profil. Toutefois, il convient de noter deux points importants:
- Vous ne pouvez pas récupérer de jetons pour un utilisateur qui ne dispose pas de profil de services de jeux Play. La création de profil est automatiquement proposée lorsque l'utilisateur tente de se connecter à votre jeu avec les services de jeux Play sur un deuxième appareil.
- Vous devez suivre des consignes supplémentaires pour vous assurer de disposer d'un avis approprié décrivant les éléments suivants et d'obtenir le consentement approprié de l'utilisateur final :
- Le partage des données avec Google pour activer la fonctionnalité d'association de comptes Play Jeux.
- Disponibilité de paramètres pour gérer ce partage, tels que les paramètres Play Jeux.
- Le traitement de ces données conformément aux Règles de confidentialité de Google.
Enregistrer une paire de jeton et de persona
- Un utilisateur sans profil de services de jeux Play ouvre un jeu pour lequel le rappel sans profil est activé.
- Le SDK Jeux déclenche une connexion automatique, qui échoue, car l'utilisateur ne dispose pas de profil PGS.
- Le SDK Games affiche une barre de notification informant l'utilisateur que le jeu est intégré à Google. Cette barre de notification est interactive : l'utilisateur peut désactiver le rappel jusqu'à ce qu'un profil soit créé.
- Le jeu demande l'accès à la récupération. Notez que PGS refuse les requêtes d'accès au rappel lorsqu'il existe des profils PGS sur l'appareil ou lorsqu'il n'y a pas de comptes Google sur l'appareil. Dans ce cas, le jeu doit se poursuivre sans utiliser PGS.
- Une fois que l'utilisateur se connecte avec un compte dans le jeu, le jeu crée une paire de jetons et de personas pour l'utilisateur qui correspond à son compte dans le jeu. Le jeu stocke cette paire auprès de Google. Le jeu peut stocker d'autres jetons plus tard si l'utilisateur se connecte à d'autres comptes dans le jeu.
Lancer un jeu sur un nouvel appareil
- Un utilisateur sans profil de services Play Jeux ouvre un jeu pour lequel le rappel sans profil est activé sur un appareil.
- Le jeu enregistre un jeton de rappel sans profil, comme décrit dans la section Stocker une paire de jeton et de persona.
- L'utilisateur ouvre le même jeu sur un autre appareil avec la même configuration de compte.
- Le SDK Jeux déclenche la création du profil. L'utilisateur peut examiner et refuser les jetons de rappel précédemment stockés. L'utilisateur crée un profil PGS à ce moment-là.
- La connexion automatique à PGS est terminée, et le jeu reçoit l'état d'authentification.
- Le jeu récupère les jetons de rappel pour l'utilisateur comme d'habitude.
Étapes suivantes
Pour intégrer l'API Recall à votre client et à votre serveur de jeu, suivez ces instructions.