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

使用Python调用Gmail API时认证失败问题求助

Gmail API 认证失败问题解决

问题描述

  • 授权时提示:“Google尚未验证此应用,你获得了一个正在测试的应用的访问权限,仅在了解邀请方的情况下继续。”
  • 点击继续后报错:“出现错误,抱歉,此处出现问题,请重试。”
  • 已尝试关闭两步验证,仍无法解决,相关代码如下:
# import statements

SCOPES = ['https://www.googleapis.com/auth/gmail.settings.basic',
    'https://www.googleapis.com/auth/gmail.readonly'
    ]

flow = InstalledAppFlow.from_client_secrets_file(
    r'my_correct_path_to_secret_file'
    , scopes=['https://www.googleapis.com/auth/gmail.readonly'])
creds = flow.run_local_server(port=0)

# Save the credentials for the next run
with open('token.json', 'w') as token:
    token.write(creds.to_json())

# Create the Gmail API client
gmail_service = build('gmail', 'v1', credentials=creds)

解决步骤

1. 确认OAuth应用的测试用户配置

登录Google Cloud控制台,进入目标项目的「API和服务」→「OAuth同意屏幕」,确保你的Google账号已添加到「测试用户」列表中。未验证的应用仅允许测试用户完成授权,若未添加则点击「添加用户」输入邮箱保存。

2. 校验客户端密钥文件

确认my_correct_path_to_secret_file指向的是从Google Cloud控制台下载的OAuth 2.0客户端ID JSON文件(文件名通常为client_secret_xxxxxx.json),不要使用服务账号密钥文件,二者格式不兼容。

3. 统一权限范围(Scopes)配置

代码中定义了SCOPES数组,但初始化flow时又单独指定了单个权限,导致配置不一致。修改代码统一使用预定义的SCOPES:

flow = InstalledAppFlow.from_client_secrets_file(
    r'my_correct_path_to_secret_file',
    scopes=SCOPES
)

4. 清除旧认证缓存

删除本地生成的token.json文件,关闭当前浏览器的Google登录会话(或使用无痕模式),重新运行代码触发全新授权流程。

5. 确认Gmail API已启用

在Google Cloud控制台的「API和服务」→「已启用的API和服务」中,检查「Gmail API」是否已启用,若未启用则搜索并启用该API。

内容的提问来源于stack exchange,提问作者dugong-lukong-jikang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 05:45:05