0

我正在尝试使用 google drive api。我创建了一个服务帐户凭据并从控制台云下载。问题是我是 gsuit 组织的一部分,当我尝试列出我的文件时,它是空的,但我的驱动器中有文件。

from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials

credentials = ServiceAccountCredentials.from_json_keyfile_name(
    "credentials.json", scopes=['https://www.googleapis.com/auth/drive'])
service = build('drive', 'v3', credentials=credentials)
print(service.files().list().execute())

可能是什么?

4

1 回答 1

1

实际上,您并没有提供很多信息,但请确保在您发布的 api 凭据上选择了“您将从哪里调用 API”字段中的“其他 UI”选项,并且您选择了“用户数据”而不是“应用程序”数据',范围也应该是' https://www.googleapis.com/auth/drive.readonly.metadata '列出数据。' https://www.googleapis.com/auth/drive ' 也是正确的,但鉴于它是一个 gsuite 帐户,即使对于您自己的数据,通用范围也可能受到限制。

此外,您应该service = DRIVE.files().list().execute().get('files', []) for f in files: print(f['name']) 枚举该文件数组以获取文件。

如果这不起作用,请查看 api 文档,如果您无法弄清楚,请发布更多详细信息并尝试进行一些调试并在此处发布结果。

编辑:尝试使用带有适当凭据的restapi,看看文件是否在那里成功获取。https://developers.google.com/drive/api/v2/reference/files/list

于 2020-06-11T19:16:03.273 回答