【问题标题】:Gmail Api return Unauthorized client or scope in requestGmail Api 在请求中返回未经授权的客户端或范围
【发布时间】:2016-10-13 14:15:53
【问题描述】:

我一直在努力完成这项工作,但完成了一半。

实际上我只能从 Gmail API 读取消息,如果我尝试使用 gmail.modify Scope 我会收到错误:

HttpAccessTokenRefreshError:未授权客户端:请求中未经授权的客户端或范围。

这是我的代码:

# init gmail api
credentials_path = os.path.join(settings.PROJECT_DIR, 'settings/gmail_credential.json')
scopes = ['https://www.googleapis.com/auth/gmail.readonly',
          'https://www.googleapis.com/auth/gmail.modify']
credentials = ServiceAccountCredentials.from_json_keyfile_name(credentials_path, scopes=scopes)
delegated_credentials = credentials.create_delegated('my_account@gmail.com')
http_auth = delegated_credentials.authorize(Http())
gmail = build('gmail', 'v1', http=http_auth)

在我的服务帐户中:

  • 我已将所有可能的角色设置到我的服务帐户“......iam.gserviceaccount.com”
  • 我激活了 DWD:DwD:Google Apps 域范围委派已启用。

我在某处读到我需要一个 google 工作帐户来授予我的服务帐户在 my_account@gmail 电子邮件帐户上使用 gmail.Modify 的权限。仅修改电子邮件中的消息似乎非常困难。

我不知道下一步该做什么。

【问题讨论】:

    标签: python authorization gmail-api


    【解决方案1】:

    根据此documentation,在设置 API 范围时,您需要使用“开发人员控制台”中的客户端 ID 作为“管理 API 客户端访问”中的客户端名称。 Google API 无法按预期使用您的个人帐户 @gmail.com。您应该在 Google 中拥有格式为 you@your_organisation_domain 的组织域帐户。

    检查这些线程:

    【讨论】:

    • 那么就没有办法通过Gmail Api来管理一个account@gmail了吗?
    猜你喜欢
    • 2015-02-01
    • 2015-07-06
    • 1970-01-01
    • 2017-02-22
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    • 2022-09-19
    • 1970-01-01
    相关资源
    最近更新 更多