使用Python调用Google Drive API返回空列表问题求助
问题分析与解决
核心原因
你使用的权限范围https://www.googleapis.com/auth/drive.file是受限权限:它仅允许应用访问两类资源:
- 由当前应用创建的文件/文件夹
- 用户通过当前应用明确授权访问的文件/文件夹
你手动在Google Drive根目录创建的文件夹不在上述范围内,因此API调用返回空列表是该权限的预期行为,并非静默错误。
解决方案
根据需求,可选择以下两种方案:
方案1:调整权限范围
若需要访问用户Drive中的所有文件/文件夹,替换为对应权限范围(按需选择):
- 全读写权限:
https://www.googleapis.com/auth/drive - 只读权限:
https://www.googleapis.com/auth/drive.readonly
注意:修改权限后需重新完成授权流程,刷新绑定原权限的凭据。
方案2:获取目标文件夹的访问权限
若不想扩大权限范围,可通过以下方式让应用获得目标文件夹权限:
- 用当前应用代码创建目标文件夹,应用会自动拥有该资源的访问权限
- 引导用户通过应用界面手动选择并授权访问目标文件夹
代码修正提示
你的代码存在一处语法错误,需修正类型标注写法:
原错误代码:
service Resource = gdrive.connect_to_service('drive', gdrive.credentials, 'v3')
修正后:
service: Resource = gdrive.connect_to_service('drive', gdrive.credentials, 'v3')
验证建议
调整权限后重新运行代码,若使用特定文件名查询,需确保self.folder_name的拼写(含大小写)与目标文件夹完全一致。
内容的提问来源于stack exchange,提问作者Steve Scott
相关产品推荐
相关产品推荐

