0

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

同步响应包含存储在数据库中的threadIdmessageId 。

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

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

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

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

任何可扩展的建议将不胜感激。

4

1 回答 1

2

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

于 2014-08-29T16:25:50.487 回答