(Unity) 在 android 上使用 google 播放服务进行身份验证失败

(Unity) Failed authenticating with google play services on android

我在尝试对 android 游戏进行身份验证时遇到问题,我使用 playfab + google play 服务在 google 上进行身份验证,但我什至无法到达其中的部分我使用 google 帐户在 playfab 上进行身份验证,Social.localUser.Authenticate 永远不会成功,回调中 returns 的消息是 "Authentication canceled",我得到的唯一有用的日志消息是

[Play Games Plugin DLL] Application is pausing, which disconnects the RTMP client. Leaving room. Authentication canceled [Play Games Plugin DLL] DEBUG: Invoking user callback on game thread

有时会抛出

[Play Games Plugin DLL] Starting Auth Transition. Op: SIGN_IN status: ERROR_TIMEOUT

[Play Games Plugin DLL] Starting Auth Transition. Op: SIGN_IN status: ERROR_NOT_AUTHORIZED

但仅此而已。最奇怪的是它打开了 Google Play Games 弹出窗口,它要求权限,我接受它并且一切都按预期进行,但在应用程序中它永远不会成功。我已经在 Playfab 上注册了平台插件,在 google 开发人员控制台上添加了一个网络应用程序 linked,将客户端 oauth id 和密码复制到 playfab,配置了重定向的 uri 和端点 link(参考文献:https://www.youtube.com/watch?v=FIse9VOk-FE, https://api.playfab.com/docs/tutorials/landing-players/sign-in-with-google)。但是 none 这个有效,我无法验证它,无论它是否通过 playstore 安装,我唯一没有尝试过的是它在 playstore 上测试它作为 alpha 版本,它在内部正在测试。

[更新 1:] 我在清醒时使用的代码:

PlayGamesClientConfiguration config = new 
PlayGamesClientConfiguration.Builder()
        .AddOauthScope("profile")
        .WithInvitationDelegate(GoogleInvitation)
        .WithMatchDelegate(GoogleMatch)
        .RequestEmail()
        .RequestServerAuthCode(false)
        .RequestIdToken()
        .Build();
    PlayGamesPlatform.InitializeInstance(config);
    PlayGamesPlatform.DebugLogEnabled = true;
    PlayGamesPlatform.Activate();

我用来登录的代码:

Social.localUser.Authenticate((success, message) =>
    {
        Debug.Log("Authentication Message: " + message);

        if (success)
        {
            var serverAuthCode = PlayGamesPlatform.Instance.GetServerAuthCode();
            _AuthService.AuthTicket = serverAuthCode;
            _AuthService.Authenticate(Authtypes.Google);
        }
        else
        {

            Debug.Log("Failed  authenticating with google");
        }
    });

你能提供一些代码吗?首先我认为你需要打电话给

PlayGamesPlatform.Activate()

之后所有社交功能都应该可以使用了。

还要实际测试 google 播放服务,您需要将您的应用程序部署到 alfa/beta 测试或在 Play Market 中发布并从市场下载,否则它实际上不会工作。

原来我不在应用程序游戏服务的测试访问列表中,因为我不是所有者我没有发现它。现在已经解决了。

我得到 "Authentical Cancelled" 并解决了它 via this post:

基本上,它的发生是因为我允许 google 使用自己的密钥对应用程序进行签名。在我转到 GooglePlayConsole-> Release Management --> App Signing 后很明显。

"App Signing by Google Play is enabled for this app".

因为启用了,我只好费心另一个网页了"Google APIs"。在那里,我必须从功能区的下拉菜单中选择 "My Game",进入凭据选项卡并使用适当的 SHA-1 创建一个新凭据。

但是 link(在这个回答中)对此进行了更详细的解释。