为什么 gmail API 在使用 history.list 方法时发送邮件 ID 而没有字段对它们执行了什么操作?

Why does gmail API when using history.list method send message ids without the field what action has been preformed on them?

当使用 gmail API、history.list 方法时,我们从 'labelAdded'、'labelRemoved'、'messageAdded'、'messageRemoved'。这是为什么?并且有没有可能添加了一条新消息,但是当我们使用这个方法时,字段 messageAdded 没有被使用,所以我们收到它 "bare" ?

根据GMail history API,列表只包含idthreadId字段。
它以这种方式工作,因为 历史记录 API 的 objective 是为您提供邮箱中发生的更改,而不是其内容。

Users.history 获取列表后:list 您需要调用 Users.messages: get or Users.messages: list 来获取完整消息。

如果 messageAdded 字段为空,这意味着在您检查的最后一个 historyId 之后没有添加新消息。你可能跳过了一些。确保每次查询 API 时,您都在内部存储您处理的最后一个 historyId,这样您以后就可以从那个点恢复并且不会丢失任何更改。