首页 > 解决方案 > Gmail API - Python 中的自动转发

问题描述

我一直试图让它工作一段时间,但我无法通过我得到的这个错误代码。

我使用此代码的目标是在 gmail 中设置转发电子邮件地址。这是谷歌文档:https ://developers.google.com/gmail/api/guides/forwarding_settings

我已经复制并粘贴了代码,并且收到了相同的错误消息:

googleapiclient.errors.HttpError: <HttpError 400 when requesting https://www.googleapis.com/gmail/v1/users/me/settings/forwardingAddresses?alt=json returned "Bad Request">

错误的请求是迄今为止最令人沮丧的错误代码。我正在使用具有域范围委派的服务帐户,所以我认为这不是权限问题。我已经复制了代码,所以很难相信 json 包不正确。我浏览了整个互联网,找不到任何实际使用此功能的示例代码。恐怕 GAM 将是我唯一的选择。

def test():

    key_path = 'tokens/admin_client.json'
    API_scopes =['https://www.googleapis.com/auth/gmail.settings.sharing','https://www.googleapis.com/auth/gmail.settings.basic']
    credentials = service_account.Credentials.from_service_account_file(key_path,scopes=API_scopes)

    gmail_service = build('gmail', 'v1', credentials=credentials)
    address = { 'forwardingEmail': 'user2@example.com' }
    gmail_service.users().settings().forwardingAddresses().create(userId='me', body=address).execute()

标签: pythongmail-api

解决方案


您使用的服务帐户无权访问 Gmail。

您可以使用服务帐户模拟 GSuite 用户,也可以使用OAuth 直接以用户身份登录


推荐阅读