You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gmail API OAuth2错误redirect_uri_mismatch:Python快速入门教程问题求助

搞定Gmail API OAuth授权的400错误

嘿,我之前碰到好几个开发者都踩过这个坑——你看到的&是HTML实体转义后的字符,这会让Google的OAuth服务器认不出正确的重定向URI,直接给你返回400错误。咱们一步步来解决:

1. 先揪出URL转义的问题

快速入门脚本默认用run_local_server()来启动本地授权服务,但有时候因为环境或者代码里不小心的处理,会把参数分隔符&转成&。你可以先试试临时解决方案:把授权URL里所有的&替换成&,再复制到浏览器里访问,看看能不能正常授权。

如果临时方案有用,那咱们从根源修复:

  • 检查你的脚本里有没有用到html.escape这类HTML转义函数处理授权URL,有的话直接去掉;
  • 要是你自己手动拼接授权URL参数,别硬写&,用urllib.parse.urlencode()来处理参数,它会自动生成正确的分隔符。

2. 再核对OAuth客户端的配置细节

虽然你说已经确认过重定向URI,但还是再仔细检查一遍:

  • 你在API控制台创建的是桌面应用类型的OAuth客户端ID吗?因为本地服务器模式属于桌面应用范畴,要是选成Web应用,哪怕URI对了也会报错;
  • 控制台里的重定向URI要和脚本实际用的完全一致,比如脚本默认是http://localhost:随机端口/,要是你指定了固定端口(比如8080),就得填http://localhost:8080/,连末尾的斜杠都不能差;
  • 别搞混HTTP和HTTPS,本地授权用的是HTTP,别填成HTTPS了。

3. 清理旧凭据缓存

有时候之前错误的授权凭据会留在本地缓存里,导致问题反复出现。你可以删除这两个地方的文件:

  • 脚本生成的token.json文件(就在脚本目录里);
  • 系统级的缓存:Windows是%APPDATA%\gcloud\credentials,macOS/Linux是~/.config/gcloud/credentials。

删完之后重新运行脚本,重新走一遍授权流程,应该就能正常跳转了。我之前帮好几个朋友解决过这个问题,大部分都是转义字符或者客户端类型选错的锅~

内容的提问来源于stack exchange,提问作者kashiB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:25:06