3

google-api-java-client 版本: google-api-1.13.2-beta.jar Java 环境: Java 6

描述问题。

我有个问题。我想使用 OAuth 2.0 for Devices 访问 Google Drive。"https://www.googleapis.com/auth/drive"使用范围是错误的。当您使用"https://docs.google.com/feeds/"in 范围时,我成功了。我想知道我是否使用"https://docs.google.com/feeds/"来使用“DriveAPI” I。这是正确的用法吗?

要求:

POST https://accounts.google.com/o/oauth2/device/code HTTP/1.1

client_id=xxxxx.apps.googleusercontent.com&scope=https://www.googleapis.com/auth/drive

Response: {   "error" : "invalid_scope" }

回复:

POST https://accounts.google.com/o/oauth2/device/code HTTP/1.1

client_id=xxxxx.apps.googleusercontent.com&scope=https://docs.google.com/feeds/

Response:
{
  "device_code" : "4/e6HcZHKPz-eExgLb_Ll9V8qoT1NP",
  "user_code" : "zzwiv48b",
  "verification_url" : "http://www.google.com/device",
  "expires_in" : 1800,
  "interval" : 5
}

您希望它如何修复?我认为可以在“ https://www.googleapis.com/auth/drive ” I的范围内进行身份验证。

developer.google.com

stackoverflow.com

4

3 回答 3

2

You are missing an h in the protocol. Try https://docs.google.com/feeds/ instead of ttps://docs.google.com/feeds/. Apply the same change to all your scope urls

于 2013-03-08T15:53:58.107 回答
1

来自关于“将 OAuth 2.0 用于设备”的 Google 文档(https://developers.google.com/identity/protocols/OAuth2ForDevices#allowedscopes):

当您对设备使用 OAuth 2.0 流程时,您只能访问以下范围:

  • 分析配置和报告 API
  • 日历 API
  • 联系人 API
  • 云打印 API
  • 云存储 API
  • 健身 REST API
  • 融合表 API
  • 谷歌登录
  • YouTube 数据和直播 API

我在此列表中没有看到 Drive API,我认为这是“invalid_scope”错误的原因

于 2016-07-08T20:28:09.440 回答
0

我有完全相同的问题。我已按照开发文档中的说明进行操作,并在请求中使用“www.googleapis.com/auth/drive”作为我的范围。最终,我在响应中得到了“invalid_scope”。

所以我尝试使用“www.googleapis.com/auth/devstorage.full_control”作为范围,它起作用了!提示来自:https ://cloud.google.com/storage/docs/authentication#oauth

但!!当我使用我创建的访问令牌列出谷歌驱动器帐户信息时,我收到错误代码 403 并且消息是“权限不足”。

这是我用来请求帐户信息的内容: curl -H "Authorization: Bearer $ACCESS_TOKEN" https://www.googleapis.com/drive/v2/about?key= $APP_KEY

这真的让我很困惑......

于 2015-07-22T08:35:56.223 回答