我想在GMail收件箱中收到最早的电子邮件。如何使用最少数量的API调用来实现这一目标?
执行此操作的一种方法是从Users:getProfile
API获取电子邮件总数,然后使用User.messages:list
API使用“ pageToken ”查询获取最后一页参数使用公式
pageToken = totalMessages / 50
从我的收件箱的最后一页获取邮件列表,然后使用列表中最后一条邮件的mid
来获取最早的电子邮件。
我只是想知道是否有更好的方法来做到这一点?我无法从文档中找出其他方法。是否会向我提取最早的电子邮件?
答案 0 :(得分:2)
User.messages.list包含一个名为q的参数,可用于搜索。
https://www.googleapis.com/gmail/v1/users/userId/messagesq=before%3A2008%2F01%2F01&access_token= {令牌}
基本上发送before:2008/01/01
就像在gmail网络应用中搜索一样,在该日期之前返回所有电子邮件。
这里的诀窍是缩小你的搜索范围。 Gmail于2004年发布。这使得2018年和2004年之间可能的开始分成两半
before:2011/01/01 (there were mails split it in half again)
before:2007/01/01 (there were no mails must be between 11 and 7)
before:2009/01/01 (...)
这种搜索方法有一个术语,但我现在无法记住它。基本上你一直把它除以2并找出结果必须在哪里。