无需登录即可以 JSON 格式获取 Google Drive 文件夹的内容

Posted

技术标签:

【中文标题】无需登录即可以 JSON 格式获取 Google Drive 文件夹的内容【英文标题】:Get contents of Google Drive folder in JSON without login 【发布时间】:2015-06-06 17:13:39 【问题描述】:

我需要在不提示用户进行任何身份验证的情况下获取 Google Drive 中文件夹的内容。该文件夹是我的,它是完全公开的。我有一个 OAuth2 客户端 ID 和一个 API 密钥。

我不认为 OAuth 是要走的路。使用 OAuth,当前用户需要识别自己。这根本不是我想要的。

所以它必须是 API 密钥。我可以打开这个:

https://www.googleapis.com/drive/v2/files/[folder ID]?key=[my key]

这给了我有关文件夹的信息。但如果我试试这个:

https://www.googleapis.com/drive/v2/files/[folder ID]/children?key=[my key]

我明白了:


 "error": 
  "errors": [
   
    "domain": "global",
    "reason": "required",
    "message": "Login Required",
    "locationType": "header",
    "location": "Authorization"
   
  ],
  "code": 401,
  "message": "Login Required"
 

我查了很多,但大多数解决方案都是针对每个用户的内容。在这里,我想要的是一个目录的列表,然后最终访问其中的文件。所有这些都是公开的。

我做错了什么?

【问题讨论】:

您说“使用 OAuth,当前用户需要识别自己”。这不是真的。这是最常见的情况,也是大多数示例说明的情况,但也可以使用任何 Google 帐户,或更具体(且经常被误解)的服务帐户。 查看更多后,我发现了服务帐户。但是,没有一个基本示例表明它存在。 酷。请注意,您了解服务帐户不是您自己帐户的代理。这是一个全新的帐户。 你应该澄清你想做这个服务器端 【参考方案1】:

您在这里做错了,您还需要提供一个文件 ID,您要获取哪些内容。像这样: https://www.googleapis.com/drive/v2/files/0B2NqFQc4CTl6Tk1PMTlaaEZFYkk?id=api-key。 您可以通过单击文件夹并在新选项卡中打开来获取文件 ID。

【讨论】:

不列出文件,只是文件夹环境,你需要添加 /children 这样调用它,这将导致错误 401【参考方案2】:

这就是我要找的东西:the OAuth2 Service Account。

【讨论】:

以上是关于无需登录即可以 JSON 格式获取 Google Drive 文件夹的内容的主要内容,如果未能解决你的问题,请参考以下文章

获取网站访问者的IP地址,让他们无需登录即可访问网站

无需登录即可获取 Instagram 访问令牌

以 XML/JSON 格式返回 Google Analytics Reporting API 结果

无需用户登录即可获取特定页面的公共帖子

无需身份验证令牌即可访问 Google 电子表格 API

无需登录即可获取 MySQL 数据库列表