已确认OAuth Client ID存在仍报客户端被删除错误如何解决?
报错解决步骤
google.auth.exceptions.RefreshError: ('deleted_client: The OAuth client was deleted.')报错本质是身份验证流程用到的OAuth客户端ID和实际已删除的客户端绑定,你确认客户端ID存在的前提下,可以按以下步骤逐一排查:
- 核对本地凭证文件的客户端ID
进入你代码中指定的\\gspread_pandas配置目录,打开从Google Cloud控制台下载的OAuth凭证json文件,核对文件中client_id字段的值和你当前控制台有效客户端ID完全一致,排除使用旧版本凭证、粘贴ID时多空格/错字符的问题。 - 清除本地缓存的刷新令牌
刷新令牌和申请时使用的OAuth客户端是绑定关系,如果你之前用已删除的客户端完成过授权,就算你更新了本地凭证文件,gspread_pandas缓存的旧刷新令牌仍然会调用已删除的客户端信息。直接删除配置目录下所有cached_token开头的缓存文件,重新运行脚本走一次授权流程生成新的令牌即可。 - 确认客户端与项目状态正常
登录Google Cloud控制台检查对应OAuth客户端:1. 没有被移入回收站/删除;2. 所属的Google Cloud项目处于正常启用状态,没有被冻结或删除;3. 客户端类型选择为「桌面应用」,和本地脚本的运行场景匹配。 - 修正配置路径读取逻辑
你当前代码用字符串拼接路径的方式在Windows环境下容易出现转义错误,导致脚本读取了其他位置的旧凭证,建议把路径拼接逻辑替换为os.path.join的标准写法:
你也可以加一行dir_gpandas = os.path.join(dir_script, "gspread_pandas")print(gp_cred)输出实际加载的配置内容,确认脚本读取的客户端ID和你预期一致。
内容的提问来源于stack exchange,提问作者O'Lagan
相关产品推荐
相关产品推荐

