gpt4 book ai didi

android - 从 Android 获取 Google oauth 授权 token -返回无效范围/未知错误

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:42:35 36 4
gpt4 key购买 nike

我尝试使用 Google oauth 在我的 Android 应用程序上对用户进行身份验证。然后我想将它发送到我的应用程序服务器,以便它可以随时连接到 Google 日历。

我试着用 GoogleAuthUtil.getToken(getApplicationContext(), mAccountName, mScope);

关注这篇文章: https://developers.google.com/accounts/docs/CrossClientAuth

当我将它与范围一起使用时mScope = "oauth2:https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo。简介";我得到一个 token ,有效期为一个小时

但是当我尝试获取授权码时(这样我可以获得一个有效期更长的刷新 token ,使用mScope2 ="oauth2:server:client_id:{CLIENT_ID}.apps.googleusercontent.com"+ ":api_scope:https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile";

我收到“invalid_scope”或“Unknown”异常。

我做错了什么?

编辑:好的,在谷歌 API 控制台上创建一个新应用程序并将 plus.login 添加到范围后,我得到了一个代码,但由于某种原因我的服务器无法解析此 token 。绑定(bind)解析服务器时收到有关重定向 URL 的错误。顺便说一句,当我使用相同的参数执行网络流程时,它会起作用。

最佳答案

好的,找到了解决方案,我希望谷歌有更多关于使用谷歌 Oauth 和 Android 的更好的文档。使用 Android 和离线 token 必须知道的几件事

  1. 当您创建 google Client ID 时,在创建 Web 应用程序之前不要创建服务应用程序

  2. 必须包含 https://www.googleapis.com/auth/plus.login在你的范围内

  3. 最奇怪的是,为了解析我服务器上的一次性授权代码,我不得不使用来自 Android 客户端 ID 详细信息的重定向 URL(它甚至看起来不像一个 url),而不是来自 Web 客户端Google API 控制台上的详细信息。

关于android - 从 Android 获取 Google oauth 授权 token -返回无效范围/未知错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18361054/

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