API de Recall

La API de Recall permite que los juegos administren los vínculos entre los usuarios de los Servicios de juego de Google Play (PGS) y sus cuentas dentro del juego almacenando tokens de recuperación con los servidores de Google. A continuación, se muestra una situación de ejemplo de cómo se podría usar la API de Recall.

  1. Un usuario está jugando un juego en el que el desarrollador tiene un sistema de identidad para seguir su progreso y usa los PGS en paralelo con otros métodos de autenticación para registrar usuarios en su juego. En este ejemplo, un usuario accede a su cuenta de los PGS Laura y crea una cuenta en el juego con el sistema de identidad del desarrollador llamada Racer94. A medida que el usuario juega, el servidor de juegos del desarrollador sincroniza su progreso.

    El usuario accedió con los PGS y una cuenta en el juego

  2. Por separado, el desarrollador guarda un token de recuperación con Google, que se corresponde con la cuenta del usuario en el juego. Google almacena automáticamente ese token de recuperación en el perfil de los PGS del usuario.

    El servidor de juegos almacena el token de recuperación con los servidores de Google

  3. Ahora el usuario decide jugar en los GPG en una PC por primera vez. Accede automáticamente con su cuenta de los PGS, y el cliente del juego verifica si hay algún progreso disponible para este usuario. Luego, el servidor de juegos envía una consulta a Google para ver si hay tokens de esta cuenta de los PGS. Dado que existen, Google devuelve el token de recuperación, y el servidor de juegos lo usa para encontrar la cuenta Racer94 asociada del usuario y restablecer su progreso. Dado que acceder con los PGS es una experiencia fluida, la app restablece el progreso del usuario sin necesidad de que el usuario ingrese un nombre de usuario o una contraseña. Además, el desarrollador puede usar el acceso a los PGS con su sistema de identidad existente y emplear Google para almacenar el vínculo entre el progreso del jugador y su cuenta de los PGS.

    El servidor de juegos restablece el progreso con el token de recuperación

Como se ve en el ejemplo anterior, la API de Recall realiza dos acciones principales:

  • Almacenar el token con Google cuando un usuario accede con una de las cuentas del juego

  • Recuperación del token de un usuario para restablecer sus cuentas en el juego

Además de los tokens de recuperación, la API de Recall también requiere un identificador estable correspondiente a la cuenta en el juego, llamado arquetipo, para aplicar las restricciones de cardinalidad. Imagina que un arquetipo es la etiqueta que representa la cuenta del usuario en el juego dentro del sistema de identidad del desarrollador, y el token de recuperación es una clave que se usa para restablecer la cuenta del usuario en el juego. No se deben volver a usar los valores de arquetipo ni token en diferentes proyectos de los PGS. Además, si bien los tokens de recuperación se pueden cambiar con el tiempo, un arquetipo debe ser estable según la cuenta en el juego del usuario.

Reglas de cardinalidad

La API de Recall aplica una relación 1:1 entre los perfiles de los PGS y las cuentas dentro del juego (denominadas reglas de cardinalidad), en la que un arquetipo solo se puede vincular a un perfil de los PGS, y un perfil de los PGS solo se puede vincular a un arquetipo. El arquetipo se usa como un identificador estable para una cuenta en el juego, ya que los tokens de recuperación pueden cambiar con el tiempo.

El arquetipo vinculado a un perfil de los PGS también puede cambiar con el tiempo (ya que se vinculan diferentes cuentas dentro del juego a este perfil).

Flujos técnicos para almacenar y recuperar los tokens de recuperación

En esta sección, se explica el flujo técnico entre el cliente del juego y los servidores con servidores de Google cuando se almacenan y recuperan tokens de recuperación.

Paso 1: Accede al usuario de los PGS y recupera el ID de sesión

El juego inicializa el SDK de los PGS y, luego, intenta hacer que el usuario acceda con los PGS.

El usuario accede con los PGS

Si el usuario accedió, solicita un ID de sesión del SDK de juegos en el cliente del juego y solicita un token de OAuth 2.0 del backend de OAuth de Google. El ID de sesión y los tokens de OAuth 2.0 se usan para la comunicación con el backend de Juegos de Google.

El desarrollador solicita un ID de sesión

Paso 2: Recupera cualquier token de recuperación disponible

Solicita cualquier token de recuperación asociado a la cuenta del usuario de los PGS. Si hay un token presente, continúa con el paso 3a y restablece el progreso. De lo contrario, si se trata de un usuario nuevo y no hay un token presente, continúa con el paso 3b y almacena un token nuevo.

El desarrollador recupera el token de recuperación

Paso 3a: Si hay un token, restablece el progreso

Si hay un token presente, recupera y desencripta el token y restablece los datos del usuario.

El desarrollador restablece los datos del token de recuperación

Paso 3b: Si no hay un token, almacena uno

Como no hay un token, no se restablece ningún progreso. El usuario accede con el sistema de identidad del desarrollador o crea una cuenta nueva si no hay una existente. Nota: Esto no implica acceder con los PGS (lo que ya se hizo), sino con el sistema de identidad de un desarrollador fuera de los PGS.

El usuario accede con su cuenta en el juego

Crea un token de recuperación encriptado que codifique la cuenta del usuario en el juego y envíalo a Google junto con el ID de sesión y el token de OAuth 2.0. En este punto, Google crea una asociación entre el token de recuperación que se envió y la cuenta de los PGS del jugador.

El desarrollador almacena el token de recuperación

Flujos para usuarios sin un perfil de PGS

Puedes almacenar tokens de recuperación de un usuario que aún no creó un perfil de los PGS mediante el modo sin perfil. Sin embargo, existen dos advertencias importantes:

  • No puedes recuperar los tokens de un usuario que no tiene un perfil de los PGS. La creación del perfil se solicita automáticamente cuando el usuario intenta acceder a tu juego con los Servicios de juego de Play en un segundo dispositivo.
  • Debes seguir lineamientos adicionales para asegurarte de tener un aviso adecuado que describa los siguientes elementos y obtengas el consentimiento correspondiente del usuario final:
    • Que compartas los datos con Google para habilitar la función de vinculación de cuentas de Play Juegos
    • La disponibilidad de la configuración para administrar este uso compartido, como la configuración de Play Juegos.
    • El tratamiento de tales datos en virtud de la Política de Privacidad de Google

Almacena un par de token y arquetipo

Un usuario sin un perfil de los PGS abre un juego

  1. Un usuario sin un perfil de los PGS abre un juego que tiene habilitada la recuperación sin perfil.
  2. El SDK de juegos activa un acceso automático, que falla porque el usuario no tiene un perfil de los PGS.
  3. El SDK de Juegos muestra una barra de notificaciones que le informa al usuario que el juego tiene integración con Google. Esta barra de notificaciones se puede activar: el usuario puede inhabilitar la recuperación hasta que se cree un perfil.
  4. El juego solicita acceso de recuperación. Ten en cuenta que los PGS rechazan las solicitudes de acceso de recuperación cuando hay perfiles de los PGS en el dispositivo o cuando no hay Cuentas de Google en el dispositivo. En ese caso, el juego debería continuar sin usar los PGS.
  5. Después de que el usuario accede con una cuenta en el juego, el juego crea un par de tokens y arquetipos para el usuario que corresponde a su cuenta en el juego. El juego almacena esta vinculación con Google. Es posible que el juego almacene más tokens más adelante si el usuario accede a otras cuentas en el juego.

Cómo iniciar un juego en un dispositivo nuevo

  1. Un usuario sin un perfil de los PGS abre un juego que tiene habilitada la recuperación sin perfil en un dispositivo.
  2. El juego registra un token de recuperación sin perfil, como se describe en Almacena un token y un par de arquetipos.
  3. El usuario abre el mismo juego en un dispositivo diferente que tiene la misma configuración de cuenta.
  4. El SDK de juegos activa la creación de perfiles. El usuario puede revisar y rechazar los tokens de recuperación almacenados con anterioridad. Por el momento, el usuario crea un perfil de los PGS.
  5. Se completa el acceso automático a los PGS, y el juego recibe el estado autenticado.
  6. El juego recupera tokens de recuperación para el usuario como de costumbre.

Próximos pasos

Para integrar la API de Recall con tu servidor de cliente y de juegos, sigue esta guía.