微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

gmail 是否会通过其 /watch API 向监视的邮箱提供虚假历史记录 ID?

如何解决gmail 是否会通过其 /watch API 向监视的邮箱提供虚假历史记录 ID?

背景:我为我的邮箱调用users/{id}/watch,并且 gmail 成功地将事件分派到我的 Node GCP PubSub 订阅处理程序。我有一个对应于邮箱的 redis 键,并将我的应用程序处理的最新 historyId 存储为它的值。每当我收到一条消息时,我都会使用该键的值(下面日志中的 lastKNownHistory)来调用 users/{id}/history,并获取生成该 historyId 键的事件以来的所有事件。然后我使用 Math.max 操作返回的 historyIds 的 /history 更新 redis 键。 (gmail 开发者文档对此partial synchronization strategy 进行了概述。)

主题处理程序接收一个 historyId 作为其负载的一部分。但是,/history API 永远不会返回此密钥。作为来自 pubsub 主题的消息的一部分提供的 historyId 是假的,还是对应于真实的邮箱事件?

清理日志:

[email: my-email-address] [message.historyId: 4137307]  lastKNownHistory:  4137247
[email: my-email-address] [message.historyId: 4137307]  fetched history events [4137250,4137309,4137310,4137311] 

在上面的例子中,你可以看到我的 redis historyId 比消息的 historyId 早,但是当我用它来获取时,我没有返回 4137307 作为一个获取的事件。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。