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 le montre l'exemple ci-dessus, l'API Recall effectue deux actions principales : le stockage du jeton auprès de Google lorsqu'un utilisateur se connecte avec l'un des comptes de jeu et la récupération du jeton de l'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 détaillés 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 Play Jeux
Le mode sans profil vous permet de stocker des jetons de rappel pour un utilisateur qui n'a pas encore créé de profil de services de jeux Play. Toutefois, veuillez tenir compte de deux mises en garde importantes:
- Vous ne pouvez pas récupérer de jetons pour un utilisateur qui n'a pas de profil de services de jeux Play. La création du profil est automatiquement invité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 :
- Votre partage des données avec Google pour activer la fonctionnalité d'association de compte Play Jeux
- Disponibilité des paramètres permettant de 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
Stocker un jeton et une paire de personas
- Un utilisateur sans profil de services Play Jeux ouvre un jeu pour lequel le rappel sans profil est activé.
- Le SDK Games déclenche une connexion automatique, qui échoue car l'utilisateur n'a pas de profil PGS.
- Le SDK Games affiche un snackbar qui informe l'utilisateur que le jeu est intégré à Google. Ce snackbar est exploitable : l'utilisateur peut désactiver le rappel jusqu'à ce qu'un profil soit créé.
- Le jeu demande l'accès au rappel. Notez que PGS rejette les demandes d'accès de rappel lorsqu'il existe des profils PGS sur l'appareil ou lorsqu'il n'y a pas de compte Google sur l'appareil. Dans ce cas, le jeu doit se poursuivre sans utiliser le PGS.
- Une fois que l'utilisateur s'est connecté avec un compte de jeu, le jeu crée une paire de jetons et de persona 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 ultérieurement si l'utilisateur se connecte à d'autres comptes de 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 jeton/personnage.
- L'utilisateur ouvre le même jeu sur un autre appareil avec la même configuration de compte.
- Le SDK pour les jeux déclenche la création du profil. L'utilisateur peut consulter et rejeter les jetons de rappel précédemment stockés. L'utilisateur crée alors un profil de services Play Jeux.
- La connexion automatique à PGS se termine, 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.