【发布时间】:2017-05-11 18:02:17
【问题描述】:
我目前正在使用 Google 的 Games API。客户端通过用户的授权代码连同他们的 GPlay ID 一起发送。
我将其发送出去以通过 Google 验证;
var tokenResponse =
new GoogleAuthorizationCodeTokenRequest(
new NetHttpTransport(),
JacksonFactory.getDefaultInstance(),
"https://www.googleapis.com/oauth2/v4/token",
client_id,
client_secret,
idTokenString,
"")
.execute()
其中client_id 和client_secret 是从我们的client_secret 中检索的,与从Google 检索的一样,idTokenString 是用户登录客户端提供的授权码(格式:4/xxxxx..)。
获取tokenResponse后,下面将返回访问令牌,没有问题;
var accessToken = tokenResponse.getAccessToken()
但是,从以下位置检索到的 idToken:
var idToken = tokenResponse.getIdToken()
返回空值。因此,尝试获取用户的数据以验证他们是帐户的合法所有者;
var idToken = tokenResponse.parseIdToken()
将返回一个空指针异常。
通过谷歌搜索该主题,一些用户似乎认为 parseIdToken 方法已不再使用,并且只能使用 accessToken 来检索此类信息。
但是,我发现的任何解决方案都需要使用 getIdToken,它也返回 null。
是否有人对我在这里可能做错了什么有任何想法,或者是否有另一种预期的方法可以在登录后检索用户的详细信息?
【问题讨论】:
标签: java android google-play google-play-services google-play-games