我正在实施一个可以阅读电子邮件的机器人,我正在关注Gmail API
。我可以阅读所有标签,并将其存储在列表中。我无法阅读标签内的消息
credentials = get_credentials()
http = credentials.authorize(httplib2.Http())
service = discovery.build('gmail', 'v1', http=http)
results = service.users().labels().get('me',"INBOX").execute()
print (results.getName())
我收到错误 -
results = service.users().labels().get('me',"INBOX").execute()
TypeError: method() takes exactly 1 argument (3 given)
官方api文档实现get label
在java中。
有人可以告诉我我做错了吗?
SCOPES = 'https://www.googleapis.com/auth/gmail.readonly','https://mail.google.com/','https://www.googleapis.com/auth/gmail.modify','https://www.googleapis.com/auth/gmail.labels'
答案 0 :(得分:2)
我认为这是你应该做的:
results = service.users().labels().list(userId='me').execute()
从官方文件中: https://developers.google.com/gmail/api/quickstart/python
进一步阅读后,这似乎是一个两阶段的过程。
首先,您需要使用查询获取消息列表:
response = service.users().messages().list(userId=user_id, q=query,
pageToken=page_token).execute()
然后你通过ID获取消息:
message = service.users().messages().get(userId=user_id, id=msg_id).execute()
答案 1 :(得分:0)
这里的错误是你对标签而不是消息使用'get'方法。此get方法用于查找有关标签的信息,例如该标签内未读消息的数量。
您可以在下面的行中看到您要求的.labels
results = service.users().labels().get('me',"INBOX").execute()
您是正确的,此示例仅在Java中显示。如果你想让get(for labels)方法在python中工作,那么就是一个使用代码的例子。
results = service.users().labels().get(userId='me',id='Label_15').execute()