Web应用程序使用新的GmailAPI(User. message:send)代表UserA向UserB发送电子邮件。
同步响应包含存储在数据库中的threadId、message ageId。
然后,我们查询历史API用户收件箱中的任何更改(User.历史:列表)。
有没有一种有效的方法来获取自上次同步以来的所有更新(新回复、已读/未读更改)?
我们尝试的一种实现是通过自定义标签过滤历史API结果。不幸的是,我们注意到,一旦线程/消息被标记为特定标签,任何后续响应都不会自动标记,新的回复也不会包含在历史API响应中。
第二种方法是使用gmail高级搜索查询特定标签和日期的线程(例如:2014/08/29标签:MY_LABEL之后)。问题是gmail不返回在2014/08/29之前创建但在该日期有回复的线程。
任何可扩展的建议将不胜感激。
我不确定我在这里是否理解,user.历史. list正是为此而制作的。给定一个以前的历史ID,然后您可以调用历史.list(previous历史ID),遍历结果以查找自上一个历史ID以来已更新的所有消息ID。然后对所有这些调用message.get()——对于您已经知道的任何消息,您可以调用format=MINIMAL(查看标签更新),对于新消息,如果需要,您可以使用不同的格式来获取消息内容。