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

Gmail API授权报错:Delegation denied for [my_email] 求助

解决Katalon Studio中Gmail服务账号403 Delegation Denied问题

针对你遇到的权限错误,按以下步骤排查解决:

  • 确认服务账号的域委派配置
    如果你使用的是Google Workspace(原G Suite)账号,必须在Google Admin控制台给服务账号配置全域委派:

    1. 找到目标服务账号,开启全域委派
    2. 添加Gmail API的权限范围(比如https://www.googleapis.com/auth/gmail.readonly,根据你的需求调整)
      注意:如果测试邮箱是普通Gmail个人账号,服务账号的域委派无法生效,因为个人账号没有域管理员权限,这种情况需要改用普通OAuth授权流程。
  • 检查凭证文件与目标邮箱配置

    1. 打开gmail-access-credentials.json,确认client_email是服务账号的邮箱地址
    2. 确保代码中GetMainEmail()返回的是准确的KatalonAutoTesting@gmail.com,没有拼写错误或逻辑错误导致返回你的个人邮箱
  • 彻底清理token缓存
    之前删除token可能不彻底,找到脚本存储授权token的目录(通常是用户目录下的.credentials文件夹,或者脚本指定的缓存路径),删除所有相关的token文件(包括refresh token),重新运行脚本让它重新获取授权。

  • 验证OAuth consent screen与权限批准

    1. 确认KatalonAutoTesting@gmail.com已被添加到OAuth consent screen的测试用户列表中
    2. 如果是Workspace账号,联系域管理员确认已批准服务账号的权限请求
  • 代码层面的授权检查
    确保服务账号授权代码中正确设置了目标邮箱作为委派用户,示例代码如下:

    GoogleCredential credential = new GoogleCredential.Builder()
        .setTransport(httpTransport)
        .setJsonFactory(jsonFactory)
        .setServiceAccountId(serviceAccountEmail)
        .setServiceAccountPrivateKeyFromP12File(new File(p12FilePath))
        .setServiceAccountScopes(Collections.singleton(GmailScopes.GMAIL_READONLY))
        .setServiceAccountUser("KatalonAutoTesting@gmail.com") // 此处必须指定目标测试邮箱
        .build();
    

    检查SMDEmailUtils中的授权逻辑,确认setServiceAccountUser的参数是GetMainEmail()返回的目标邮箱,而非固定值或你的个人邮箱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 01:55:15