仅用API Key调用Google Drive API下载文件遇权限问题求助
仅用API Key下载Google Drive文件的可行方案
首先明确:API Key无法直接访问私有文件,哪怕是生成该Key的账号自己的文件也不行——API Key的作用是标识你的应用、管控API调用配额,它不代表用户身份,没有权限读取私有存储空间的内容,这就是你遇到403权限错误的原因。
如果你的场景只能用API Key,唯一可行的办法是把目标文件设置为公开可访问,再通过API Key调用下载接口,具体步骤如下:
步骤1:设置文件为公开可访问
打开目标文件的Google Drive页面,点击「共享」→ 选择「知道链接的任何人」→ 权限设为「查看者」,保存设置。
步骤2:获取文件ID
从文件的共享链接中提取FILE_ID,比如链接https://drive.google.com/file/d/123abcXYZ/view里的123abcXYZ就是文件ID。
步骤3:修正代码调用下载接口
用以下代码替换你原来的示例,就能通过API Key下载公开文件:
import requests api_key = 'YOUR_API_KEY_HERE' file_id = 'YOUR_FILE_ID_HERE' # 调用Drive API的文件下载接口(适用于PDF、压缩包等可直接下载的文件类型) response = requests.get( f'https://www.googleapis.com/drive/v3/files/{file_id}?alt=media', params={'key': api_key} ) # 保存文件到本地 if response.status_code == 200: with open('downloaded_file', 'wb') as f: f.write(response.content) print('文件下载成功') else: print(f'下载失败:{response.json()}')
针对Google原生格式文件的补充
如果是Docs、Sheets这类Google原生格式文件,需要用export接口指定导出格式,比如导出为PDF:
response = requests.get( f'https://www.googleapis.com/drive/v3/files/{file_id}/export', params={'key': api_key, 'mimeType': 'application/pdf'} )
重要提示
公开文件会被任何知道链接的人访问,若文件涉及敏感内容,此方案不适用——这种情况下你只能回到OAuth或服务账号的方案,没有其他绕过权限限制的途径。
内容的提问来源于stack exchange,提问作者Farhan Ahmed
相关产品推荐
相关产品推荐

