如何使用服务账号访问Google Drive Revisions API?权限报错求助
解决Google Drive API获取文件修订记录的权限不足问题
问题详情
获取文件变更时触发权限错误:
The user does not have sufficient permissions for file ***
使用的Python代码:
SCOPES = ['https://www.googleapis.com/auth/drive'] credentials = service_account.Credentials.from_service_account_file( 'service.json', scopes=SCOPES) service = build('drive', 'v3', credentials=credentials) service.revisions().list(fileId=DOC_ID)
IAM配置截图:
注:目标文件为自行在docs.google.com创建的文件。
解决方案
给服务账号添加文件级权限
服务账号是独立的身份实体,即使你是文件所有者,它默认也没有访问权限。操作步骤:- 打开docs.google.com找到目标文件,右键选择「共享」
- 填入service.json文件中
client_email字段对应的邮箱地址 - 授予至少「查看者」权限(仅获取修订记录无需更高权限)
- 确认共享设置
检查Scope配置
当前使用的https://www.googleapis.com/auth/drive权限范围已经满足需求,若想遵循最小权限原则,可替换为https://www.googleapis.com/auth/drive.readonly,不影响功能。验证服务账号关联项目
确保service.json对应的GCP项目,与你配置IAM的项目为同一项目,避免因项目不匹配导致权限未生效。
内容的提问来源于stack exchange,提问作者Ilya
相关产品推荐
相关产品推荐

