gpt4 book ai didi

Android PlusClient 实现 & 获取 token

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:57:07 26 4
gpt4 key购买 nike

所以我实现了 google plus 登录到我的应用程序...我的实现非常接近给定的示例 here 。我和他最大的区别是我需要的范围更大。在构建我的 plusclient 时,我指定了以下范围:

    "https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/plus.me https://www.google.com/m8/feeds https://www.googleapis.com/auth/userinfo.email"

稍后在我的 onConnected 方法中,我尝试从我的 session 中获取 accesstoken,以便传递到我们的服务器,我们在那里进行真正的肉类和土 bean 工作。

    GoogleAuthUtil.getToken(SplashActivity.this, mPlusClient.getAccountName(), "oauth2: https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/plus.me https://www.google.com/m8/feeds https://www.googleapis.com/auth/userinfo.email")

这确实会产生一个访问 token 。 YIPPEE!正确的?不。当我们尝试使用此 token 时,它似乎与我们的应用程序无关。当通过 googles tokeninfo 端点运行 token 时,我们得到了一些类似的东西

{
"issued_to": "608941808256-43vtfndets79kf5hac8ieujto8837660.apps.googleusercontent.com",
"audience": "608941808256-43vtfndets79kf5hac8ieujto8837660.apps.googleusercontent.com",
"user_id": "107245641469745809180",
"scope": "https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.profile https://www.google.com/m8/feeds https://www.googleapis.com/auth/userinfo.email",
"expires_in": 3577,
"email": "redacted@email.com",
"verified_email": true,
"access_type": "online"
}

那个 issued_to 值与我们的任何客户 ID 都不匹配。根据 this blog post 的最后一部分,谷歌无法将此 token 请求与我们的项目相匹配。然而,在我们的 API 控制台中,我确实有 android 的 SHA 指纹,它确实与包名称用分号分隔。没有拼写错误。我已经等了几个小时,看看它是否是一个传播问题。我还添加了 SHA 指纹和诸如此类的东西来为我们的调试 keystore 创建一个 clientid。无论是从 eclipse 中导出已签名的 apk 还是直接运行它,我们都会遇到同样的问题。

这让我发疯。我不知道该转向哪里。

例如,当调用

googleapis.com/plus/v1/people/me/people/visible?access_token=TOKEN_HERE&maxResults=100&pageToken=&alt=json&orderBy=best

我明白了

{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "accessNotConfigured",
"message": "Access Not Configured"
}
],
"code": 403,
"message": "Access Not Configured"
}
}

因为谷歌出于某种原因没有将该 token 与我的项目相关联。

最佳答案

到目前为止,这是 google api 中的错误。

如果我取出“https://www.google.com/m8/feeds”范围,那么一切正常, token 成功与我们的项目相关联。如果“https://www.google.com/m8/feeds”作为请求的范围包含在内,尽管它会正确提示用户获得该特定权限,但在 api 端一切都会中断。尽管我们在请求此范围时仍会获得 token ,但该 token 并未与我们的项目相关联。

关于Android PlusClient 实现 & 获取 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15950054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com