Gmail API 推送通知邮件 ID 重复

Gmail API push notification duplicate message ids

我正在使用 Gmail push notifications for email processing. When I receive a message notification from Google, I use the history list API 和之前存储的 historyId 并且可以使用 messagesAdded 查看新消息。检索到消息后,我会存储下一个请求的最后一个 historyId。

测试时,如果我向监视的邮箱发送两封邮件(间隔约 30 秒),我会看到来自 Google 的两条消息通知,当我为每个消息调用历史记录时 API我看到消息 ID 的通知。这一切都很好。

如果我重复相同的测试但紧接发送两个邮件消息,我会收到来自 Google 的两个通知,但是当我为第一条消息调用历史记录 API 时,我获取该历史记录 API 调用中的两个消息 ID。当我调用 history API 调用第二个通知时,我得到了最后一条消息 ID 的副本。

在这种情况下如何防止看到重复的消息 ID?任何帮助或指点将不胜感激。

已更新:添加了第二次测试的请求和响应示例。

我在 Google 历史记录 API 的响应中注意到 historyId 显示了已处理的最新消息。如果我将此值存储为下一个起点而不是通知消息中发送的 historyId,它会解决重复问题,因为在第二个请求中没有更多消息。不确定这是否是执行此操作的正确方法,因为这意味着我不存储或使用通知消息中发送的 historyId