Как получить первое сообщение конкретного пользователя с помощью API Gmail - PullRequest
0 голосов
/ 11 января 2019

как получить первое сообщение определенного пользователя (например, первое сообщение от меня на Facebook), используя gmail api

В настоящее время я использую этот код для получения всех сообщений

from googleapiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools

SCOPES = 'https://www.googleapis.com/auth/gmail.readonly'

def main():

    store = file.Storage('token.json')
    creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('credentials.json', SCOPES)
    creds = tools.run_flow(flow, store)
service = build('gmail', 'v1', http=creds.authorize(Http()))

# Call the Gmail API to fetch INBOX
results = service.users().messages().list(userId='me',maxResults=20,labelIds = ['INBOX']).execute()
messages = results.get('messages', [])

if not messages:
    print("No messages found.")
else:
    print("Message snippets:")
    for message in messages:
        msg = service.users().messages().get(userId='me', id=message['id']).execute()
        print(msg['snippet'])

if __name__ == '__main__':
    main()

Ответы [ 2 ]

0 голосов
/ 11 января 2019

Получить длину сообщения:

last_index = len(messages) - 1

msg = service.users().messages().get(userId='me', id=messages[last_index]['id']).execute()
print(msg['snippet'])
0 голосов
/ 11 января 2019

Глядя на ваш код, я думаю, что вам нужно заменить приведенный ниже фрагмент кода

for message in messages:
        msg = service.users().messages().get(userId='me', id=message['id']).execute()
        print(msg['snippet'])

со следующим фрагментом кода,

msg = service.users().messages().get(userId='me', id=messages[-1]['id']).execute()
print(msg['snippet'])
...