我过去一年使用这些测试https://developers.google.com/gmail/api/v1/reference/users/messages/list#try-it过去常常与Gmail API进行交互,但现在这些示例都失败了,因为似乎有更多消息,但下一次迭代是空的。
问题在于这部分代码:
while 'nextPageToken' in response:
page_token = response['nextPageToken']
response = service.users().messages().list(userId=user_id, q=query,
pageToken=page_token).execute()
messages.extend(response['messages'])
尝试访问响应['消息']时会出现错误,因为响应中的唯一键是' resultSizeEstimate'并且是0.听起来像page_token指向下一个空页面。
有人遇到此问题吗?
答案 0 :(得分:0)
如果您的上一页完美地包含上一封包含该特定查询的电子邮件,那么您将获得一个nextPageToken
页面,其中包含以下回复:
{
"resultSizeEstimate": 0
}
解决此问题的最简单方法是添加一项检查,如果messages
是响应的一部分:
while 'nextPageToken' in response:
page_token = response['nextPageToken']
response = service.users().messages().list(userId=user_id, q=query, pageToken=page_token).execute()
if 'messages' in response:
messages.extend(response['messages'])