【问题标题】:(Unity) Failed authenticating with google play services on android(Unity) 无法在 android 上使用 google play 服务进行身份验证
【发布时间】:2019-06-03 14:15:17
【问题描述】:

我在尝试在我的 android 游戏上进行身份验证时遇到问题,我使用 playfab + google play 服务在 google 上进行身份验证,但我什至无法使用 google 帐户在 playfab 上进行身份验证,Social.localUser.Authenticate never成功并且它在回调中返回的消息是“身份验证已取消”,我得到的唯一有用的日志消息是

[Play Games Plugin DLL] 应用程序正在暂停,这会断开连接 RTMP 客户端。离开房间。身份验证已取消 [Play 游戏插件 DLL] 调试:在游戏线程上调用用户回调

有时它会抛出

[Play 游戏插件 DLL] 开始身份验证转换。操作:SIGN_IN 状态: ERROR_TIMEOUT

[Play 游戏插件 DLL] 开始身份验证转换。操作:SIGN_IN 状态: ERROR_NOT_AUTHORIZED

但仅此而已。最奇怪的是,它打开了 Google Play 游戏弹出窗口,它要求权限,我接受它,一切都按预期进行,但在应用程序中它永远不会成功。我已经在 Playfab 上注册了平台插件,在 google 开发者控制台上添加了一个链接的 web 应用程序,将客户端 oauth id 和 secret 复制到 playfab,配置了重定向的 uri 和端点链接(参考:https://www.youtube.com/watch?v=FIse9VOk-FEhttps://api.playfab.com/docs/tutorials/landing-players/sign-in-with-google )。但是这些都不起作用,我无法对其进行身份验证,无论它是否通过 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");
        }
    });

【问题讨论】:

    标签: android unity3d google-play google-play-services google-play-games


    【解决方案1】:

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

    PlayGamesPlatform.Activate()

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

    此外,要实际测试 google play 服务,您需要将应用部署到 alfa/beta 测试或在 Play Market 中发布并从市场下载,否则它将无法实际工作。

    【讨论】:

    • 我已经在调用这个函数,并且该应用程序在通过市场下载和测试时处于 alpha 状态,它仍然无法正常工作(我添加了我在问题中使用的代码)
    • 您是否使用应用 ID、成就 ID 等设置了谷歌平台?可以通过 Unity Edtior 完成,只需查看 Google 指南。
    • 是的,这一切都已完成......好吧,事实证明我不在另一个用于在 google play 配置中进行测试的列表中,我不是帐户的所有者,现在其他所有问题都解决了,先生,谢谢您的宝贵时间!
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      我得到“正版取消”并解决了它via this post:

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

      “此应用已启用 Google Play 应用签名”。

      因为它已启用,我不得不为另一个网页“Google API”而烦恼。在那里,我必须从功能区的下拉菜单中选择“我的游戏”,进入凭据选项卡并使用适当的 SHA-1 创建一个新凭据。

      但链接(在这个答案中)更详细地解释了它。

      【讨论】:

        猜你喜欢
        • 2020-07-15
        • 2019-07-29
        • 2016-05-11
        • 2016-10-25
        • 2015-08-11
        • 1970-01-01
        • 2012-09-29
        • 1970-01-01
        • 2017-03-11
        相关资源
        最近更新 更多