Вы можете пропустить страницы, полагаясь на поле nextPageToken , как описано в справочнике по вызову list
. Поле nextPageToken
является частью полезной нагрузки ответа.
query = 'example query has:attachment'
nextPageToken = ''
# The following while goes through all pages using the nextPageToken key in the response.
while True:
### GET MESSAGES THAT MATCH A QUERY
msg_results = service.users().messages().list(userId='me', maxResults=20, pageToken=nextPageToken, q=query).execute()
# messages = msg_results.get('messages', [])
if('nextPageToken' in msg_results or nextPageToken==''):
nextPageToken = msg_results['nextPageToken']
print('nextPageToken={}'.format(nextPageToken))
else:
break
Как только вы выполните этот цикл, ваш msg_results
будет содержать только сообщения, которые принадлежат последней странице. Сколько сообщений вы получите, будет зависеть от того, как установлено maxResults
.
Если вы хотите пропустить только несколько страниц, например 3 или 4, легко изменить приведенный выше фрагмент, чтобы подсчитать количество циклов и выйти, когда он окажется на нужной странице.
Чтобы получить полностью рабочий пример кода, вы можете попробовать интегрировать приведенный выше фрагмент с этим кодом на GitHub или с симпатичным шаблоном из базы знаний GMail , который также находится на GitHub .