从Gmail提取所有电子邮件的方法是什么?我做到了full_sync,但这并没有返回我的所有电子邮件-仅约3000封电子邮件,尽管我知道我还有更多。他们在文档中没有提到这一点。我的代码片段: history = service.users().history().list( userId='me', startHistoryId=start_history_id, maxResults=500, labelId='INBOX' ).execute() if "history" in history: try: for message in history["history"]: batch.add( service.users().messages().get(userId='me', id=message["messages"][0]["id"]), callback="somecallbak", request_id=request_id ) batch.execute() while 'nextPageToken' in history:
2 回答
繁花如伊
TA贡献2012条经验 获得超12个赞
根据此链接的建议,您可以使用批处理请求。
使用批处理并一次请求100条消息。您将需要发出 1000 个请求,但好消息是这很好,而且对每个人来说都更容易(不要在单个请求中下载 1GB 响应!)。
同样基于此线程,您可以在每个请求上保存下一个页面令牌,并在下一个请求中使用它。如果响应中没有下一页标记,则说明您已收到所有消息。
添加回答
举报
0/150
提交
取消