Integrar o Recall dos Serviços relacionados a jogos do Google Play ao app

Faça login dos usuários no jogo sem problemas enquanto continua usando seu próprio sistema de contas. Com as APIs de recuperação dos serviços relacionados a jogos do Google Play, você pode vincular contas no jogo a uma conta dos serviços relacionados a jogos do Google Play. Quando um usuário joga em diferentes dispositivos (ou no mesmo dispositivo após reinstalar o jogo), você consulta a conta vinculada no jogo e simplifica o fluxo de login.

Se você tiver feito a integração com as APIs de recuperação do Android, elas devem parecer familiares. Todas as integrações do lado do servidor com o Recall dos Serviços relacionados a jogos do Google Play podem ser reutilizadas por títulos para PC, já que são as mesmas para Android e PC.

Pré-requisitos

Etapa 1: adicionar o ID do projeto dos Serviços do Play Games no manifesto

Depois de concluir a configuração dos serviços relacionados a jogos do Google Play no Play Console, seu jogo vai ter um ID de projeto associado. Use esse ID do projeto, que pode ser encontrado na página de configuração dos Serviços relacionados a jogos do Google Play no Play Console, para atualizar o manifest.xml do jogo.

Exemplo de conteúdo manifest.xml:

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

Etapa 2: solicitar acesso de recuperação ao fazer login

Quando o jogo estiver processando um fluxo de login, por exemplo, adicionando uma conta no jogo, solicite o acesso de recuperação usando GamesRecallClient::RequestRecallAccess().

Essa chamada retorna um ID de sessão que é usado pelo back-end para fazer chamadas do lado do servidor para vincular e desvincular suas contas no jogo de um usuário dos serviços relacionados a jogos do Google 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
}

Etapa 3: processar o ID da sessão de recuperação

Depois que o jogo tiver o ID da sessão de recuperação e o transmitir para o servidor de jogo de back-end, use as APIs REST do lado do servidor do Google Play Games para:

Para conferir um guia mais detalhado sobre a integração do lado do servidor, consulte a documentação sobre como usar a API Recall no servidor de jogos.