我一直在努力完成这项工作,但只完成了一半的工作。
实际上我只能从 Gmail API 读取消息,如果我尝试使用 gmail.modify 范围,我会收到错误:
HttpAccessTokenRefreshError:unauthorized_client:请求中未经授权的客户端或范围。
这是我的代码:
# 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('[email protected]')
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 的权限。仅修改电子邮件中的消息似乎非常困难。
我不知道下一步该做什么。
以此为基础文档,当您设置 API 范围时,您需要使用“开发人员控制台”中的客户端 ID 作为“管理 API 客户端访问”中的客户端名称。 Google API 无法按预期使用您的个人帐户 @gmail.com。您应该在 Google 中拥有以下格式的组织域帐户you@your_organisation_domain
.
检查这些线程:
- Google API Python unauthorized_client:请求中未经授权的客户端或范围
- Google API OAuth2,服务帐户,“错误”:“invalid_grant”
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)