как получить первое сообщение определенного пользователя (например, первое сообщение на 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()
Глядя на ваш код, я думаю, что вам нужно заменить приведенный ниже фрагмент кода
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'])
Получить длину сообщений:
last_index = len(messages) - 1
msg = service.users().messages().get(userId='me', id=messages[last_index]['id']).execute()
print(msg['snippet'])
-1
или (last_index-1)
first_msg = messages[:1]
?