Google api 似乎无法通过gmail API认证阅读gmail
我已经在stackoverflow的大部分帖子中找到了答案,但仍然无法解决这个问题。这只是对gmail api进行身份验证的一个简单问题,但我想在服务器上进行身份验证,所以我需要遵循服务器(OAuth2.0 2-legged过程)。无论如何 我已经浏览了google api中的所有oauth文档。 这件衣服很合身,但没用。 我有一个服务帐户,我有信用档案 这是我的代码片段Google api 似乎无法通过gmail API认证阅读gmail,google-api,google-oauth,gmail-api,google-api-python-client,service-accounts,Google Api,Google Oauth,Gmail Api,Google Api Python Client,Service Accounts,我已经在stackoverflow的大部分帖子中找到了答案,但仍然无法解决这个问题。这只是对gmail api进行身份验证的一个简单问题,但我想在服务器上进行身份验证,所以我需要遵循服务器(OAuth2.0 2-legged过程)。无论如何 我已经浏览了google api中的所有oauth文档。 这件衣服很合身,但没用。 我有一个服务帐户,我有信用档案 这是我的代码片段 def call_gmail(): SCOPES = ['https://www.googleapis.com/a
def call_gmail():
SCOPES = ['https://www.googleapis.com/auth/gmail.readonly']
SERVICE_ACCOUNT_FILE = '<creds_file>'
credentials = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE, scopes=SCOPES)
print(credentials)
service = build('gmail', 'v1', credentials=credentials)
messages = ListMessagesMatchingQuery(service, "me", "<Some email address>")
message_id = messages[0]['id']
如果有人能帮我解决这个问题,我将不胜感激。谢谢。如果gmail api是Gsuite帐户,并且您已经设置了域范围的委派,那么它只适用于服务帐户。请与您的Gsuite管理员联系,确保他们已正确设置委派
如果gmail api是Gsuite帐户,并且您已经设置了域范围的委派,那么它只适用于服务帐户。请与您的Gsuite管理员联系,确保他们已正确设置委派
您要传递给
ListMessagesMatchingQuery
的参数是什么?您项目的服务帐户只能访问属于您的应用程序的数据,这意味着该服务帐户没有gmail收件箱;只要不请求用户数据,它就可以调用其他API。如果希望使用服务帐户访问用户数据(邮件),则需要域范围的授权。@Aerials-某些电子邮件地址是“发件人”。。它将是“from:”…这是一个个人帐户。如何使用个人帐户使用域范围的委派?如果您想使用Gmail API访问用户的收件箱,需要用户授权。一旦获得同意,服务器将向您的应用程序返回该用户的访问令牌和刷新令牌。如果你不想每次你的应用程序想代表用户访问时都征求用户的同意。然后存储刷新令牌,并重用它们以获得新的访问令牌。您要传递给ListMessagesMatchingQuery
的参数是什么?您的项目的servcie帐户只能访问属于您的应用程序的数据,这意味着该服务帐户没有gmail收件箱;只要不请求用户数据,它就可以调用其他API。如果希望使用服务帐户访问用户数据(邮件),则需要域范围的授权。@Aerials-某些电子邮件地址是“发件人”。。它将是“from:”…这是一个个人帐户。如何使用个人帐户使用域范围的委派?如果您想使用Gmail API访问用户的收件箱,需要用户授权。一旦获得同意,服务器将向您的应用程序返回该用户的访问令牌和刷新令牌。如果你不想每次你的应用程序想代表用户访问时都征求用户的同意。然后存储刷新令牌,并重用它们以获得新的访问令牌。
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Login Required"
}
}