【问题标题】:I'm trying to access Google Drive through the CLI, but keep getting "Not authorized to request the scopes"我正在尝试通过 CLI 访问 Google Drive,但不断收到“未授权请求范围”
【发布时间】:2014-09-12 18:59:02
【问题描述】:

我曾经运行一个脚本来备份各种文件并将它们放入我的 GDrive。简单的 bash,真的。通过“将它们放入 GDrive”,我的意思是它可以简单地将文件移动到 ~/Google Drive/,这将被我的笔记本电脑拾取。

我正在尝试构建一个类似的应用程序,它将某些文件上传到我的 Google 云端硬盘。它应该由我启动,保存身份验证详细信息,然后开始上传。这也必须从命令行运行。但是,没有可以获取文件的 Google Drive 客户端。我必须自己上传文件。

目前,我在使用 OAuth2 过程时遇到了问题。我在 cloud.google.com 上建立了一个项目,我已经准备好密钥、库和范围,但谷歌一直拒绝我的请求。我已启用 Drive API 和 Drive SDK。

我得到的错误是:

{
  "error" : "invalid_scope",
  "error_description" : "Not authorized to request the scopes: [https://www.googleapis.com/auth/drive]",
  "error_uri" : "http://code.google.com/apis/accounts/docs/OAuth2.html"
}

无论我尝试什么,我都无法让这个范围工作。其他范围工作正常。试图找出可能导致这种情况的原因是不可能的,我尝试过的谷歌搜索很混乱。

这些是我要求的范围:

https://www.googleapis.com/auth/drive
https://www.googleapis.com/auth/userinfo.email
https://www.googleapis.com/auth/userinfo.profile

我错过了什么?

【问题讨论】:

  • 在开发者控制台中你是否同时启用了 drive api 和 drive sdk?
  • 是的,我已启用 Drive API 和 Drive SDK。
  • 你能发布你使用的脚本吗?
  • here it is on GitHub 函数调用了obtainUserCode(),从索引中调用。在任何人调用它之前:不,这不是我的 clientID(从示例中提取)但是是的,我实际上在做 CLI PHP。范围用空格分隔;我已经仔细检查了几次客户 ID。它的格式与源代码中的注释相同。

标签: google-drive-api


【解决方案1】:

我已经设法使用以下范围而不是 https://www.googleapis.com/auth/drive 获得访问权限:

https://docs.google.com/feeds

来自手册:

访问所有用户文件的完整、许可范围。要求这个 仅在绝对必要时才适用范围。具有范围的令牌 https://docs.google.com/feeds 被接受并被视为相同 范围为https://www.googleapis.com/auth/drive 的令牌。

我试过了,效果很好。

【讨论】:

    【解决方案2】:

    您确定为 Google Drive API、Drive SDK、Google+ 启用 API 吗?您必须这样做才能使用来自Google Developer Console的这些范围

    【讨论】:

      猜你喜欢
      • 2021-11-03
      • 2012-11-16
      • 2017-10-08
      • 2015-01-22
      • 2016-08-27
      • 1970-01-01
      • 2022-06-26
      • 2012-12-23
      • 2023-03-14
      相关资源
      最近更新 更多