我正在尝试使用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())
可能是什么?
实际上,您没有提供很多信息,但是请确保在发出的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'])
并枚举files数组以获取文件。
如果不起作用,请查看api文档,如果您不明白,请发布更多详细信息,并尝试进行一些调试,然后在此处发布结果。
编辑:也尝试使用具有适当凭据的restapi,并查看是否在那里成功获取了文件。 https://developers.google.com/drive/api/v2/reference/files/list