Correção para usar LoginWithGoogleAccount no Play Games Plugin for Unity v0.11.x
Este artigo descreve uma solução alternativa para quando você recebe erros ao usar a API LoginWithGoogleAccount após atualizar para uma versão do Play Games Plugin for Unity. O erro ocorre quando os jogadores existentes não migraram para usar LoginWithGooglePlayGamesServices depois que você atualizou o Play Games Plugin for Unity para uma versão maior ou igual a v0.11.x. O motivo é que o Google removeu a possibilidade de adicionar escopos extras nas versões do plug-in maiores ou iguais a 0.11.x. Essa solução alternativa deve ser considerada uma alternativa de fallback, pois a necessidade de entrar pelo navegador pode afetar a experiência do jogador.Antes de começar
Siga estas etapas de alto nível para corrigir a autenticação ao usar a versão mais recente do plug-in.- Chamar manualmente as APIs OAuth2 do Google
- Executar a autenticação do jogador em uma guia do navegador
- Obter um código de autenticação de redirecionamento de volta para o jogo usando links diretos do Android.
Recomendação
Enquanto ainda estiver usando a versão 0.10.x do plug-in, migre seus usuários para usar a API LoginWithGooglePlayGamesServices. Use as etapas a seguir como método de fallback para o restante dos seus jogadores após atualizar para a versão 0.11.x ou posterior do plug-in.Etapas de correção
-
Adicione um intent do Android ao seu jogo usando links diretos. (Etapas adaptadas de Unity - Manual: Deep linking on Android (unity3d.com))
a. Na janela Project, vá para Assets > Plugins > Android.
b. Crie um novo arquivo e chame-o de AndroidManifest.xml. O Unity processa automaticamente esse arquivo quando você compila seu aplicativo.
c. Copie o exemplo de manifesto a seguir no novo arquivo, atualize o elemento data com o URI do seu aplicativo e salve-o. Para obter mais informações sobre como criar uma tag data adequada, confira este artigo.
d. Certifique-se de que a propriedade autoVerify exista na tag intent-filter.
- Para que os links diretos funcionem, a partir do Android 12, o Google agora exige que os desenvolvedores hospedem um arquivo assetlinks.json em um local conhecido para redirecionar com êxito para o aplicativo. Por exemplo, se o seu URI de redirecionamento for https://mytestapp.com/path1/subpath, você deverá hospedar um arquivo assetlinks.json válido em https://mytestapp.com/.well-known/assetlinks.json; caso contrário, os links diretos não funcionarão e você não será redirecionado de volta ao aplicativo para continuar. Para obter detalhes sobre como criar um arquivo assetlinks.json, confira Verify Android App Links.
-
Adicione o processamento de links diretos ao seu jogo. (Etapas adaptadas de Unity - Manual: Deep linking (unity3d.com)).
-
Adicione um código para abrir um navegador na API OAuth2 do Google e permitir que o jogador entre pelo navegador. Se o jogador já estiver conectado no navegador, a transição será perfeita; caso contrário, ele precisará inserir suas credenciais.
O URI de redirecionamento deve corresponder ao filtro de intent do Android que adicionamos na etapa 1. Assim, quando o usuário concluir a autenticação, o navegador navegará até esse URI de redirecionamento e deverá perguntar ao usuário se ele deseja voltar ao aplicativo.
-
Agora, você deve estar pronto para testar. Quando você disparar a autenticação, um navegador deverá ser aberto e o usuário deverá entrar adequadamente. A menos que os dados do navegador sejam excluídos, esta etapa deverá ser um processo único.

-
Depois que o usuário concluir a autenticação, o navegador perguntará em qual aplicativo a URL de redirecionamento deve ser aberta.

-
Essa ação navega de volta ao nosso aplicativo, e podemos obter o código dos parâmetros de consulta na URL de redirecionamento e prosseguir com a chamada de LoginWithGoogleAccount.

- Por fim, recomendamos usar este método como alternativa de fallback para os usuários que não puderam ser migrados usando as etapas de migração.
