Cómo integrar el Recall de los Servicios de juego de Play en tu app

Permite que los usuarios accedan a tu juego sin problemas y sigue usando tu propio sistema de cuentas. Con las APIs de recuperación de los Servicios de juego de Play, puedes vincular cuentas en el juego con una cuenta de los Servicios de juego de Play y, luego, cuando un usuario juegue tu juego en diferentes dispositivos (o en el mismo dispositivo después de reinstalarlo), puedes consultar la cuenta en el juego vinculada y optimizar el flujo de acceso.

Si realizaste la integración con las APIs de Recall de Android, estas APIs de Recall te resultarán familiares. Las integraciones del servidor con la Recuperación de los Servicios de juego de Play se pueden reutilizar en los títulos para PC, ya que son las mismas en Android y PC.

Requisitos previos

Paso 1: Agrega el ID de tu proyecto de Play Juegos a tu manifiesto

Después de completar la configuración de los Servicios de juego de Play en Play Console, tu juego ahora tiene un ID de proyecto asociado a los Servicios de juego de Play. Con este ID del proyecto, que se encuentra en la página Configuración de los Servicios de juego de Play en Play Console, actualiza el manifest.xml de tu juego.

Contenido de manifest.xml de ejemplo:

<?xml version="1.0" encoding="utf-8"?>
<Manifest version="1">
    <Application>
        <PackageName>com.example.package</PackageName>
        <PlayGamesServices>
            <ProjectId>123456789</ProjectId>
        </PlayGamesServices>
    </Application>
</Manifest>

Paso 2: Solicita acceso a Recall cuando accedas

Cuando tu juego controla un flujo de acceso, por ejemplo, cuando agrega una cuenta en el juego, solicita acceso a Recall con GamesRecallClient::RequestRecallAccess().

Esta llamada devuelve un ID de sesión que tu backend usa para realizar llamadas del servidor a Google para vincular y desvincular tus cuentas del juego con un usuario de los Servicios de juego de Play.

auto promise = std::make_shared<std::promise<RecallAccessResult>>();
games_recall_client.RequestRecallAccess(params, [promise](RecallAccessResult result) {
   promise->set_value(std::move(result));
});

auto recall_access_result = promise->get_future().get();
if (recall_access_result.ok()) {
   auto recall_session_id = recall_access_result.value().recall_session_id;
   // Pass the recall session ID to your backend game server so it can query
   // for an existing linked in-game account.
   // - If you discover an existing linked in-game account, continue to sign-in
   //   the in-game account. This provides a seamless cross-device sign-in
   //   experience.
   // - If there is not an existing linked in-game account, when the user
   //   completes the sign-in using your in-game account system record the
   //   account linking with Play Games Services Recall. This helps to provide
   //   a seamless cross-device sign-in experience when the user returns on a
   //   different device or after re-installing your game on the same device.
} else {
   // Handle the error
}

Paso 3: Procesa el ID de sesión de Recuperación

Una vez que tu juego tenga el ID de sesión de Recall y lo haya pasado a tu servidor de juegos de backend, usa las APIs de REST del servidor de Play Juegos para hacer lo siguiente:

Para obtener una guía más detallada sobre la integración del servidor, consulta la documentación sobre cómo usar la API de Recall en tu servidor de juegos.