Corrección para usar LoginWithGoogleAccount en Play Games Plugin for Unity v0.11.x
En este artículo se describe una solución alternativa para cuando recibe errores al usar la API LoginWithGoogleAccount después de actualizar a una versión del complemento Play Games Plugin for Unity. El error se produce cuando los jugadores existentes no migraron para usar LoginWithGooglePlayGamesServices después de que usted actualizara Play Games Plugin for Unity a una versión igual o superior a la v0.11.x. La razón es que Google eliminó la posibilidad de agregar ámbitos adicionales en las versiones del complemento iguales o superiores a la 0.11.x. Esta solución alternativa debe considerarse como una alternativa de reserva, ya que tener que iniciar sesión a través del explorador podría afectar a la experiencia del jugador.Antes de empezar
Siga estos pasos generales para corregir la autenticación al usar la versión más reciente del complemento.- Llamar manualmente a las API de OAuth2 de Google.
- Realizar la autenticación del jugador en una pestaña del explorador.
- Obtener un código de autenticación de redireccionamiento de vuelta al juego mediante vínculos profundos de Android.
Recomendación
Mientras siga usando la versión 0.10.x del complemento, migre a sus usuarios para que usen la API LoginWithGooglePlayGamesServices. Use los pasos siguientes como método alternativo para el resto de sus jugadores después de actualizar a la versión 0.11.x o posterior del complemento.Pasos de corrección
-
Agregue un intent de Android a su juego mediante vínculos profundos. (Pasos adaptados de Unity - Manual: Deep linking on Android (unity3d.com)).
a. En la ventana Project, vaya a Assets > Plugins > Android.
b. Cree un nuevo archivo y llámelo AndroidManifest.xml. Unity procesa automáticamente este archivo al compilar la aplicación.
c. Copie el siguiente ejemplo de manifiesto en el nuevo archivo, actualice el elemento data con el URI de su aplicación y guárdelo. Para obtener más información sobre cómo crear una etiqueta data adecuada, consulte este artículo.
d. Asegúrese de que la propiedad autoVerify existe en la etiqueta intent-filter.
- Para que los vínculos profundos funcionen, a partir de Android 12, Google exige ahora a los desarrolladores hospedar un archivo assetlinks.json en una ubicación conocida para redirigir correctamente a la aplicación. Por ejemplo, si su URI de redireccionamiento es https://mytestapp.com/path1/subpath, debe hospedar un archivo assetlinks.json válido en https://mytestapp.com/.well-known/assetlinks.json; de lo contrario, los vínculos profundos no funcionan y no se le redirige de vuelta a la aplicación para continuar. Para obtener más información sobre cómo crear un archivo assetlinks.json, consulte Verify Android App Links.
-
Agregue el procesamiento de vínculos profundos a su juego. (Pasos adaptados de Unity - Manual: Deep linking (unity3d.com)).
-
Agregue código para abrir un explorador con la API de OAuth2 de Google y permitir que el jugador inicie sesión a través del explorador. Si el jugador ya tiene la sesión iniciada en su explorador, la transición es fluida; de lo contrario, tendrá que escribir sus credenciales.
El URI de redireccionamiento debe coincidir con el filtro de intent de Android que agregamos en el paso 1. Así, cuando el usuario termine la autenticación, el explorador navegará a ese URI de redireccionamiento y el explorador debería preguntar al usuario si quiere volver a la aplicación.
-
Ahora, debería estar listo para probarlo. Así, cuando desencadene la autenticación, debería abrirse un explorador y el usuario debe iniciar sesión según corresponda. A menos que se eliminen los datos del explorador, este paso debería ser un proceso único.

-
Después de que el usuario complete la autenticación, el explorador preguntará en qué aplicación debe abrirse la URL de redireccionamiento.

-
Esta acción devuelve a nuestra aplicación y podemos obtener el código de los parámetros de consulta de la URL de redireccionamiento y proceder a llamar a LoginWithGoogleAccount.

- Por último, recomendamos usar este método como alternativa de reserva para los usuarios que no se pudieron migrar mediante los pasos de migración.
