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

1

как получить первое сообщение определенного пользователя (например, первое сообщение на 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()
  • 0
    как насчет first_msg = messages[:1] ?
Теги:
python-3.x
gmail-api

2 ответа

0

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

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'])
  • 0
    это даст вам самый последний право? Как получить первое сообщение определенного пользователя, если отправитель ([email protected]) отправил мне 100 писем, я хочу только первое
  • 0
    Вы решили это? 0 можно заменить на -1, обновил ответ.
-2

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

last_index = len(messages) - 1

msg = service.users().messages().get(userId='me', id=messages[last_index]['id']).execute()
print(msg['snippet'])
  • 0
    Последний элемент в списке может быть доступен с помощью -1 или (last_index-1)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню