Google drive api 使用API键在REST上列出文件给出403

Google drive api 使用API键在REST上列出文件给出403,google-drive-api,google-oauth,Google Drive Api,Google Oauth,我只是在尝试GDrive API Explorer中的curl示例,特别是以下调用: 但是,当我复制示例并使用API密钥执行它时,会出现以下错误: curl https://www.googleapis.com/drive/v3/files?key=AIzaSyCQfFNMxHVJRaTvXXXXXXXXXX { "error": { "errors": [ { "domain": "global", "reason": "insufficientFilePermi

我只是在尝试GDrive API Explorer中的
curl
示例,特别是以下调用:

但是,当我复制示例并使用API密钥执行它时,会出现以下错误:

curl https://www.googleapis.com/drive/v3/files?key=AIzaSyCQfFNMxHVJRaTvXXXXXXXXXX
{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "insufficientFilePermissions",
    "message": "The user does not have sufficient permissions for this file."
   }
  ],
  "code": 403,
  "message": "The user does not have sufficient permissions for this file."
 }
}
当我尝试使用具有相同API键的
files/{fileId}
获取单个文件时,它工作正常,并返回文件元数据


这里的交易是什么?列表是否需要特殊权限,或者API密钥是否有限制,或者..?

只是一种预感,您正在尝试一个非公共文件,这就是您收到
403:invficientfilepermissions
的原因。要访问此文件,必须使用OAuth 2.0对请求进行身份验证

您可以查看以下文档:

应用程序必须使用OAuth 2.0来授权请求。没有别的 支持授权协议。如果您的应用程序使用Google 登录后,将为您处理授权的某些方面


您使用的是什么范围?范围AFAIK是OAuth概念?如前所述,我使用API密钥进行身份验证,只是为了证明概念(现在不想进入OAuth方面)。在任何情况下,我都无法在资源管理器中为API密钥选择作用域:您已经回答了自己的问题。如果未使用oauth授权您的应用程序,则您的应用程序无权执行files.list。事实上,如果没有oauth,GDrive甚至无法知道要列出哪个帐户的文件。但是为什么单个文件上的
get
可以工作,而
list
却不能?这没有道理。我正在使用API密钥执行授权,这是GDrive API支持的两种方法之一(除了OAuth之外)。走一步,贝克,看看那个卷发请求。该请求中的哪个帐户ID是您要列出的驱动器?API密钥不是授权!这仅仅是为了审计和滥用目的识别你的应用程序。