希望有人可以在这里为我指明正确的方向,我正在尝试使用从 Unity 中的异步调用中检索到的谷歌身份验证代码登录 Playfab,流程如下:
在 Unity 中单击我的登录到 google 按钮。
Unity 开始监听响应并打开一个 google 登录浏览器会话。
用户单击电子邮件/登录他们想要的电子邮件。
此响应将使用身份验证代码返回给 Unity。
然后我尝试将返回的谷歌身份验证代码与 playfabs LoginWithGoogleAccount 方法一起使用”:
PlayFabClientAPI.LoginWithGoogleAccount(new LoginWithGoogleAccountRequest() { TitleId = PlayFabSettings.TitleId, ServerAuthCode = returnedWindowsGoogleAuthCode, CreateAccount = true, }, OnPlayfabGooglePlayAuthComplete, OnPlayfabGooglePlayAuthFailed);然后,这将失败,并从 playfab 返回带有“invalidGoogleToken”的响应。
从我在谷歌上看到的内容来看,当我调用 LoginWithGoogleAccount 时,这个令牌可能处于“已使用”状态,我可能需要一个刷新的令牌?但我对 Google API 不太熟悉,所以我可能完全不符合标准?但如果是这种情况,我应该在这里做什么?如何在不返回浏览器再次执行相同操作的情况下重新请求有效令牌?
为了让您大致了解我正在查看的确切代码,但我稍作更改以使其在 Unity 中工作,我遵循 Google 示例 OAuthDesktopApp 代码: OAuthDesktopApp 示例代码
我正在调用方法“button_Click”,它运行并发出请求,然后 Unity 在第 72 行开始侦听 google 响应,然后在第 129 行将身份验证代码输出到日志。
第 129 行的此身份验证代码输出是我随后传递回 LoginWithGoogleAccount 的内容,然后导致失败的“invalidGoogleToken”,这也会运行对用户信息的请求,该请求确实返回了您的用户的姓名/电子邮件用等登录
只是为了添加到我之前的评论中,如果我删除了对 performCodeExchange 第 132 行的调用(我在某处读到,那时我正在将身份验证代码交换为令牌,因此身份验证代码将不再起作用?我猜这里)然后如果我使用我收到的身份验证代码调用 PlayFabClientAPI.LoginWithGoogleAccount:
PlayFabError 错误:
错误.GetHashCode(): 2051826304
错误。错误:无效的GoogleToken
error.ErrorMessage:invalid_grant 详细信息:缺少代码验证器。
错误。错误详细信息:空
希望这可以帮助有人指导我。