Correctif pour l’utilisation de LoginWithGoogleAccount avec Play Games Plugin for Unity v0.11.x
Cet article décrit une solution de contournement lorsque vous recevez des erreurs en utilisant l’API LoginWithGoogleAccount après la mise à niveau vers une version de Play Games Plugin for Unity. L’erreur se produit lorsque les joueurs existants n’ont pas migré vers LoginWithGooglePlayGamesServices après que vous avez mis à niveau Play Games Plugin for Unity vers une version supérieure ou égale à v0.11.x. La raison est que Google a retiré la possibilité d’ajouter des étendues supplémentaires dans les versions du plugiciel supérieures ou égales à 0.11.x. Cette solution de contournement doit être considérée comme une solution de repli, puisque le fait de devoir se connecter au moyen du navigateur pourrait nuire à l’expérience du joueur.Avant de commencer
Suivez ces étapes générales pour corriger l’authentification lorsque vous utilisez la version la plus récente du plugiciel.- Appeler manuellement les API Google OAuth2
- Effectuer l’authentification du joueur dans un onglet du navigateur
- Récupérer un code d’authentification de redirection dans le jeu à l’aide des liens profonds Android.
Recommandation
Pendant que vous utilisez encore la version 0.10.x du plugiciel, migrez vos utilisateurs vers l’API LoginWithGooglePlayGamesServices. Utilisez les étapes suivantes comme méthode de repli pour le reste de vos joueurs après la mise à niveau vers la version 0.11.x ou ultérieure du plugiciel.Étapes du correctif
-
Ajoutez une intention Android à votre jeu à l’aide des liens profonds. (Étapes adaptées de Unity - Manual: Deep linking on Android (unity3d.com))
a. Dans la fenêtre Project, accédez à Assets > Plugins > Android.
b. Créez un nouveau fichier et nommez-le AndroidManifest.xml. Unity traite automatiquement ce fichier lorsque vous générez votre application.
c. Copiez l’exemple de manifeste suivant dans le nouveau fichier, mettez à jour l’élément data avec l’URI de votre application et enregistrez-le. Pour plus d’information sur la façon de construire une balise data appropriée, consultez cet article.
d. Assurez-vous que la propriété autoVerify existe sur la balise intent-filter.
- Pour que les liens profonds fonctionnent, à partir d’Android 12, Google exige désormais que les développeurs hébergent un fichier assetlinks.json à un emplacement connu afin de rediriger correctement vers votre application. Par exemple, si votre URI de redirection est https://mytestapp.com/path1/subpath, vous devez héberger un fichier assetlinks.json valide à l’adresse https://mytestapp.com/.well-known/assetlinks.json; sinon, les liens profonds ne fonctionnent pas et vous n’êtes pas redirigé vers votre application pour continuer. Pour savoir comment créer un fichier assetlinks.json, consultez Verify Android App Links.
-
Ajoutez le traitement des liens profonds à votre jeu. (Étapes adaptées de Unity - Manual: Deep linking (unity3d.com)).
-
Ajoutez du code pour ouvrir un navigateur vers l’API Google OAuth2 et laisser le joueur se connecter au moyen du navigateur. Si le joueur est déjà connecté dans son navigateur, la transition est transparente; sinon, il doit entrer ses informations d’identification.
L’URI de redirection doit correspondre au filtre d’intention Android que nous avons ajouté à l’étape 1. Ainsi, lorsque l’utilisateur termine l’authentification, le navigateur accède à cet URI de redirection et devrait demander à l’utilisateur s’il souhaite revenir à l’application.
-
Vous devriez maintenant être prêt à tester. Lorsque vous déclenchez l’authentification, un navigateur devrait s’ouvrir et l’utilisateur doit se connecter en conséquence. À moins que les données du navigateur ne soient supprimées, cette étape ne devrait être effectuée qu’une seule fois.

-
Une fois que l’utilisateur a terminé l’authentification, le navigateur demandera avec quelle application ouvrir l’URL de redirection.

-
Cette action ramène l’utilisateur à notre application, et nous pouvons obtenir le code à partir des paramètres de requête de l’URL de redirection, puis appeler LoginWithGoogleAccount.

- Enfin, nous recommandons d’utiliser cette méthode comme solution de repli pour tous les utilisateurs qui n’ont pas pu être migrés à l’aide des étapes de migration.
