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

alo*_*loo 9 gmail-api

我想开始同步用户邮箱,因此我需要用户邮箱的最新历史记录。似乎没有一种方法可以通过一次 API 调用来实现这一点。

gmail.users.history.list 端点包含一个historyId,这似乎是我需要的,来自文档:

historyId   unsigned long   The ID of the mailbox's current history record.
Run Code Online (Sandbox Code Playgroud)

但是,要从此端点获取有效响应,您必须提供 astartHistoryId作为参数。

我看到的唯一替代方法是发出请求列出用户消息,从中获取最新的历史记录 ID,然后向 gmail.users.history.list 发出请求,提供该历史记录 ID 以获取最新的历史记录。

还有其他想法吗?

Eri*_*c D 6

您查看过https://developers.google.com/gmail/api/guides/sync吗?

根据您的用例,为了避免当前状态与开始转发同步之间的竞争,您需要提供适当的历史记录 ID。如果有“获取当前历史记录 ID”,那么您之前的状态和获得这些结果之间的任何内容都将丢失。如果您没有任何特定的现有状态(例如只想获取更新并且不关心之前的任何内容),那么您可以使用您提到的返回的任何历史记录(例如在消息或线程上)。

  • 现在有一个 gmail.users.getprofile() 方法可以返回邮箱的当前historyId。文档尚未推送,但应该可以在客户端库或 API 资源管理器中使用:https://developers.google.com/apis-explorer/#p/gmail/v1/gmail.users.getProfile 希望有帮助! (15认同)
  • 是的,看到了这些文档,我所说的正是我没有任何现有状态并且只希望将来更新的情况。 (3认同)
  • 实际上这比我想象的还要糟糕。实际上我们需要进行 3 次调用才能完成这项工作。其一是获取消息列表。另一个调用是获取单个消息的内容以获取该历史记录 ID。然后调用从该历史记录 id 开始获取历史记录,然后使用当前历史记录 id 进行响应。 (2认同)