我看到有时history.list
响应中不包含任何历史记录条目,即使Gmail邮箱有更新。
在我的设置中,我的应用程序被订阅来观看Gmail的“ INBOX”标签更新,以便在收到新邮件时,我们可以进行一些处理。
其中一封邮件后,Gmail已发送带有新的historyId的通知(值为843968),并且该应用程序照常呼叫history.list
,其中startHistoryId
设置为先前已知的historyId,即843911但是,该调用返回了一个没有(或为空)history
数组的响应。结果,应用程序将内部historyId更新为新值,并且对新接收到的消息不进行任何处理,因为响应中没有历史记录数组。有了下一条通知,将使用新的historyId(843968)进行history.list
调用,并且先前发送的消息的相关信息也会丢失。
在我注意到该消息到来,但是我的应用程序未按预期处理它之后,我手动将history.list
设置为843911(消息到达前的值)来调用startHistoryId
传回给我一个包含history
项和其中messagesAdded
的答复。
因此,是否可能发生这种情况,history.list
可能返回不完整的数据,并且我的应用程序必须以某种方式处理此类情况以防止丢失邮箱更新,或者这是Gmail API中的错误?