Google Sheets API Python快速入门:有效OAuth2凭证触发403 restricted_client错误
解决Google Sheets API Python 2.7快速入门的403 restricted_client错误
先拆解你的问题根源
你碰到的Error: restricted_client是OAuth客户端配置出了核心问题,这直接导致后续的凭证生成流程卡壳——所以就算你手动创建了credentials.json,脚本也没法写入内容,因为OAuth授权根本没走完。
第一步:修复restricted_client错误
这个错误90%是因为你的OAuth客户端ID类型不对,按下面的步骤检查:
- 打开Google开发者控制台,找到你创建的OAuth 2.0客户端ID
- 一定要确保你创建的是桌面应用类型的客户端(不是Web应用、Android或iOS)——Python快速入门脚本是本地运行的桌面程序,用Web应用类型的客户端会触发Google的安全限制,直接报403
- 检查重定向URI:确认列表里包含
http://localhost:8080/,这是脚本默认的回调地址,少了这个也会出错 - 改完配置后,重新下载客户端凭证文件,替换掉本地的
client_secret.json(别改文件名,脚本里硬编码的就是这个名字)
第二步:搞定credentials.json的问题
你手动建空文件完全没用,credentials.json是脚本在OAuth授权成功后自动生成的,用来存储刷新令牌这类持久化凭证。先把你手动创建的空文件删掉,等OAuth流程走通了,脚本会自动生成并写入内容。
临时应急方案(针对OAuth服务故障)
如果确实碰到Google OAuth服务临时抽风的情况,你可以用API Key来绕开OAuth认证:
- 在开发者控制台生成一个API Key,记得限制它的使用范围为Google Sheets API,避免Key被滥用
- 修改代码,用API Key构建服务对象:
service = build('sheets', 'v4', developerKey='你的API Key字符串')
⚠️ 注意:API Key只能处理只读请求(对应教程里的spreadsheets.readonly权限),如果你的项目需要写入数据,还是得把OAuth配置修好。
额外要检查的小细节
- 别忘在开发者控制台启用Google Sheets API——很多人只创建了凭证,忘了开服务,这也会导致各种奇怪的错误
- 提一句:Python 2.7和
oauth2client库早就停止维护了,能升级到Python 3.x的话,建议换成google-auth系列的库,后续坑会少很多
内容的提问来源于stack exchange,提问作者Nik Gullotta
相关产品推荐
相关产品推荐

