使用Python上传文件至Google Drive遇restricted_client错误求助
解决Google Drive API上传时的"restricted_client"未注册范围错误
我之前也踩过这个一模一样的坑!出现restricted_client错误且提示未注册范围,根源并不是你代码里的scope写错了,而是你的OAuth客户端ID在Google Cloud控制台的配置没跟上。下面是一步步的解决步骤:
1. 确认Google Drive API已启用
首先进入你的Google Cloud控制台,找到API和服务 -> API库,搜索「Google Drive API」,确保它处于已启用状态。如果未启用,点击启用按钮,等待几分钟让配置生效。
2. 配置OAuth同意屏幕的授权范围
这是最容易被忽略的关键步骤:
- 进入API和服务 -> OAuth同意屏幕页面,选择你之前设置的用户类型(内部/外部)。
- 滚动到「已授权的范围」部分,点击「添加或移除范围」,在弹出窗口里搜索并勾选
https://www.googleapis.com/auth/drive(更推荐使用https://www.googleapis.com/auth/drive.file,这个范围仅授权应用访问自己上传的文件,权限更安全且符合最小权限原则)。 - 保存并确认所有修改,等待系统同步配置。
3. 重新下载客户端凭证JSON
回到API和服务 -> 凭据页面,找到你创建的OAuth 2.0客户端ID,点击右侧的下载按钮,将新的JSON文件下载到项目目录,替换掉原来的旧凭证文件。
4. 清除本地缓存的令牌
之前运行代码时生成的token.json文件会缓存旧的授权信息,直接删除这个文件,然后重新运行Python代码,再次走浏览器授权流程,这时候就不会再出现范围错误了。
额外提示:
如果你使用的是外部用户类型(非Google Workspace组织内的用户),在测试阶段必须把你用来授权的邮箱添加到「测试用户」列表里,否则即使配置了范围,也会出现权限受限的问题。
内容的提问来源于stack exchange,提问作者Jesse RJ
相关产品推荐
相关产品推荐

