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

OAuth2授权码在Auth Playground生成令牌时遇redirect_url_mismatch错误

Fixing redirect_url_mismatch When Using Gmail Add-on Authorization Code in OAuth 2.0 Playground

我来帮你拆解这个redirect_url_mismatch问题的核心——授权码和生成它时指定的redirect URI是强绑定的,你在Gmail插件里配置的redirect URI和OAuth Playground默认的肯定不一样,这就是报错的根源。下面是一步步的解决思路:

1. 先确认Gmail插件的专属Redirect URI

因为你用的是apps-script-oauth2库,你的Apps Script代码里肯定有类似这样的OAuth配置块:

var service = OAuth2.createService('GmailAddon')
  .setAuthorizationBaseUrl('https://accounts.google.com/o/oauth2/auth')
  .setTokenUrl('https://accounts.google.com/o/oauth2/token')
  .setClientId('YOUR_CLIENT_ID')
  .setClientSecret('YOUR_CLIENT_SECRET')
  .setRedirectUri('REDIRECT_URI_FROM_ADDON');

这里的REDIRECT_URI_FROM_ADDON就是关键,通常格式是https://script.google.com/macros/d/YOUR_SCRIPT_ID/usercallback(具体取决于你的脚本部署方式)。把这个URI准确复制下来,别漏了任何字符。

2. 让OAuth Playground匹配插件的Redirect URI

OAuth Playground默认的redirect URI是https://developers.google.com/oauthplayground,和插件的不匹配,所以要修改设置:

  • 打开OAuth Playground,点击右上角的齿轮图标(Settings)。
  • 勾选「Use your own OAuth credentials」。
  • 填入你Gmail插件对应的Client ID和Client Secret。
  • 在「Redirect URI」字段,粘贴你刚才从Apps Script里拿到的插件专用redirect URI。
  • 保存设置。

3. 重新获取适配的授权码(旧授权码已经失效)

你之前拿到的授权码是基于插件原来的redirect URI生成的,和Playground新设置的URI不匹配,所以必须重新走授权流程:

  • 在Playground左侧「Step 1」,选择和Gmail插件完全一致的权限Scopes(比如https://www.googleapis.com/auth/gmail.readonly,不能多也不能少)。
  • 点击「Authorize APIs」,用目标用户账号登录并完成授权。
  • 授权完成后,页面会跳转到你设置的插件redirect URI,Playground会自动抓取到新的授权码(你也可以从地址栏的code参数里手动提取)。
  • 切换到「Step 2」,点击「Exchange authorization code for tokens」,就能拿到有效的访问令牌和刷新令牌了。

4. 适配Java应用的Redirect URI配置

如果你最终要在Java应用里用这套授权流程,注意两个关键点:

  • 要么让Java应用的redirect URI和插件/Playground用的完全一致,并且把这个URI添加到Google Cloud Console对应OAuth客户端的「Authorized redirect URIs」列表里。
  • 要么在Cloud Console里为Java应用单独创建OAuth客户端,把它的redirect URI加入授权列表,然后用新的Client ID/Secret重新走授权流程生成适配的授权码。

重要提醒

  • 授权码是一次性的,而且和Client ID、redirect URI强绑定,三个要素有一个不匹配就会触发redirect_url_mismatch。
  • 所有用到的redirect URI都必须在Google Cloud Console的OAuth客户端设置里提前授权,否则哪怕你代码里写对了也会报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:12:35