使用新版Gmail API同步Gmail收件箱邮件的有效方式?

时间:2014-08-29 15:42:05

标签: performance optimization gmail gmail-api google-schemas

网络应用程序使用新的Gmail API代表 UserA UserB 发送电子邮件( Users.messages:send )。

同步响应包含存储在数据库中的 threadId messageId

然后,我们会在历史记录API中查询用户收件箱中的任何更改( Users.history:list )。

是否有一种有效的方法来获取自上次同步以来的所有更新(新回复,已读/未读更改)?

我们尝试过的一个实现是通过自定义标签过滤历史API结果。不幸的是,我们注意到,一旦线程/消息被标记有特定标签,任何后续响应都不会自动标记,并且新的回复不会包含在历史API响应中。

第二种方法是使用gmail高级搜索查询特定标签和日期(例如:2014/08/29标签:MY_LABEL之后)。问题是gmail没有返回在2014/08/29之前创建但在该日期有回复的线程。

非常感谢任何可扩展的建议。

1 个答案:

答案 0 :(得分:2)

不确定我在这里理解,users.history.list完全是为了这个。给定以前的historyId,然后可以调用history.list(previousHistoryid),遍历结果以查找自上一个historyId以来已更新的所有消息ID。然后在所有这些上调用messages.get() - 对于您已经知道的任何消息,您只需调用format = MINIMAL(以查看标签更新),对于新消息,您可以使用不同的格式来获取消息内容你需要它。