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

Java调用Gmail API遇invalid_grant错误,新OAuth2客户端ID仍无效

解决Gmail API调用时的invalid_grant错误

排查及修复步骤

  • 清除本地令牌缓存
    Google API Java客户端通常会将令牌缓存到本地(比如项目目录下的.credentials文件夹),即使新建了客户端ID,旧的过期/撤销令牌仍会被读取。直接删除缓存文件,让程序重新触发OAuth授权流程。

  • 核对OAuth客户端ID类型
    本地Java程序必须使用桌面应用类型的客户端ID,不能选用Web应用、安卓或iOS类型。类型不匹配会导致授权流程异常,触发invalid_grant错误。

  • 确认同意屏幕配置
    若同意屏幕设为“外部”且未发布,只能使用添加的测试账户进行授权。确保你用来授权的Gmail账户在测试账户列表中,否则会因权限限制导致令牌无效。

  • 检查重定向URI一致性
    Java桌面应用默认重定向URI为http://localhost:8888/Callback,Postman测试时要保证该URI与Google Cloud控制台中客户端ID配置的完全一致。自定义重定向URI的话,必须提前在控制台添加对应条目,否则授权后会返回400错误。

  • 同步系统时间
    OAuth令牌验证依赖系统时间,若本地时间与标准时间偏差超过5分钟,会被判定为令牌过期。将系统时间同步至NTP服务器后重试。

  • Postman测试的正确流程
    获取访问令牌时需注意:

    1. 授权类型选择“Authorization Code”
    2. 准确填写客户端ID、客户端密钥
    3. 范围包含Gmail API所需权限(如https://www.googleapis.com/auth/gmail.readonly)
    4. 重定向URI与控制台配置一致
      授权码只能使用一次,需重新生成新的授权码再请求令牌,不要复用旧码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 07:22:01