google-api - Gmail API 推送通知重复消息 ID

标签 google-api gmail-api

我正在使用Gmail push notifications用于电子邮件处理。当我收到来自 Google 的消息通知时,我使用 history list API与之前存储的 historyId 一起使用,并且可以使用 messagesAdded 查看新消息。检索到消息后,我会存储最后一个历史记录以供下一个请求使用。

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

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

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

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

enter image description here

最佳答案

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

关于google-api - Gmail API 推送通知重复消息 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55717718/

相关文章:

gmail-api - 获取用户邮箱当前历史记录 ID

php - 无法使用 Gmail PHP API 获取电子邮件正文

c# - Google Calendar V3 2 腿认证失败

jquery - 谷歌地图 api 与 jquery slide 的集成有动画故障

c# - Google Drive API v3 (C# .NET) 按标题搜索文件夹/文件时抛出 RequestError Invalid Value [400]

python - Gmail API 是否支持使用 OAuth 服务帐户?

python - 为什么 Gmail API 使用适用于 Google Calendar API 的代码会失败并出现 403 错误?

node.js - 尝试使用谷歌示例创建公司时出错

iphone - Google 路线导航 API (iPhone)

google-apps-script - 如何使用 Gmail API、OAuth2 for Apps 脚本和域范围委派为 G Suite 域中的用户设置电子邮件签名