Faça login dos usuários no seu jogo sem problemas e continue usando seu próprio sistema de contas. Com as APIs Recall dos serviços relacionados a jogos do Google Play, é possível vincular contas no jogo a uma conta dos serviços relacionados a jogos do Google Play. Assim, quando um usuário joga em dispositivos diferentes (ou no mesmo dispositivo após reinstalar o jogo), você consulta a conta vinculada no jogo e simplifica o fluxo de login.
Se você fez a integração com as APIs do Android Recall, elas serão familiares. Todas as integrações do lado do servidor com a Recuperação dos Serviços relacionados a jogos do Google Play podem ser reutilizadas por jogos para PC, já que são as mesmas no Android e no PC.
Pré-requisitos
Conclua a configuração do SDK.
Leia a visão geral da API Recall dos serviços relacionados a jogos do Google Play.
Conclua a configuração dos serviços relacionados a jogos do Google Play no Play Console.
Etapa 1: adicionar o ID do projeto do Play Games Services ao manifesto
Depois de concluir a configuração dos serviços relacionados a jogos do Google Play no Play Console, seu jogo
terá um ID de projeto associado a esses serviços. Usando 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, atualize 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 ao Recall ao fazer login
Quando o jogo estiver processando um fluxo de login, por exemplo, adicionando uma conta
no jogo, solicite acesso ao Recall usando
GamesRecallClient::RequestRecallAccess().
Essa chamada retorna um ID de sessão usado pelo back-end para fazer chamadas do lado do servidor ao Google para vincular e desvincular suas contas no jogo a 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 recall
Depois que o jogo tiver o ID da sessão do Recall e o tiver transmitido para o servidor de back-end do jogo, use as APIs REST do lado do servidor do Play Games para:
- Consultar contas vinculadas no jogo usando
recall.retrieveTokens - Adicione ou atualize as contas vinculadas no jogo usando
recall.linkPersona - Excluir contas vinculadas no jogo usando
recall.unlinkPersona
Para um guia mais detalhado sobre a integração do lado do servidor, consulte a documentação sobre como usar a API Recall no servidor do jogo.