使用Google Drive API v3跨账号取文件失败,仅用drive.file权限可行吗?
问题解答
核心结论
仅通过https://www.googleapis.com/auth/drive.file权限,被共享文件的账号可以获取该文件内容,但需要满足特定的授权关联条件。
问题原因
drive.file是基于「文件-应用-用户」的三元授权机制:只有当被共享账号通过你的应用完成过特定操作(建立关联),才能用该权限访问文件。你当前遇到404的原因是:被共享账号仅通过Google Drive原生界面获得了文件共享权限,但没有通过你的应用(比如你的Google FilePicker流程)与该文件建立授权关联,导致API无法识别该账号的访问权限。
解决方法
- 让被共享账号通过你的应用的Google FilePicker重新选择一次该共享文件:此操作会在该账号的授权记录中建立「文件-你的应用」的关联,之后即可用
drive.file权限正常调用API获取文件内容 - 确认API请求参数:确保
supportsAllDrives=true参数已正确传递(你当前的URL已包含,但需验证参数未被遗漏或篡改)
补充说明
文件所属主账号能正常访问,是因为所有者账号默认与自身所有文件存在授权关联,无需额外通过应用建立关联,因此drive.file权限即可生效。
内容的提问来源于stack exchange,提问作者Andrew Mooweek
相关产品推荐
相关产品推荐

