Gmail API历史记录请求返回草稿

时间:2017-06-26 14:36:33

标签: gmail-api

我发布了一个问题,即api返回无效的历史记录ID。我试图解决这个问题。我认为id在消息获取请求中无效,因为这些不是真正的消息,而是草稿。我不知道为什么历史列表会返回messagesAdded请求的草稿。有人可以告诉我这是否是预期的行为?

{
 "history": [
  {
   "id": "10946109",
   "messages": [
    {
     "id": "15cc8cd840c2945a",
     "threadId": "15cc5ccf65733c7f"
    }
   ],
   "messagesAdded": [
    {
     "message": {
      ...
      "labelIds": [
       "SENT"
      ]
     }
    }
   ]
  },
  {
   "id": "10975146",
   "messages": [
    {
     ...
    }
   ],
   "messagesAdded": [
    {
     "message": {
      ...
      "labelIds": [
       "DRAFT"
      ]
     }
    }
   ]
  }

如果我需要过滤实际的消息 - 而不是草稿,我是否只做labelIds不包含DRAFT?

1 个答案:

答案 0 :(得分:1)

你的第一个问题:

  

有人可以告诉我这是否是预期的行为?

是的,这是预期的行为(复制)。查看有关历史记录列表的Document

  

Users.history:list

     

列出给定邮箱的所有更改的历史记录。历史结果   按时间顺序返回(增加historyId)。

你的第二个问题:

  

如果我需要过滤实际的消息 - 而不是草稿,我是否只做labelIds不包含DRAFT?

是的,有一个实际的过滤器。您可以将“labelId”参数更改为除“草稿”之外的任何内容,以便它不会在历史记录中返回草稿结果。

以下是有关如何正确过滤邮件而不返回草稿标签类型的简单指南:

  1. 要检查您的labelId列表,请尝试使用此Label API Test Link查看您的标签列表,以确保您将在步骤3中通过执行API使用有效的“labelId”。< / p>

  2. 通过执行Message List API获取“historyId”的值,检索消息列表然后获取一个ID,然后使用Message Get API 通过输入ID来检索“historyId”。确保labelId不是“DRAFT”类型,或者您必须从列表中获取另一个id,以避免返回“DRAFT”类型。

  3. 然后执行History API Test Link。输入您的“userId”和“startHistoryId”(确保减去您的消息的“startHistoryId”的值1)并使用“labelId”更改从您在步骤2中从GET API检索的标签列表中选择一个,将“historyTypes”更改为“messagesAdded”,然后单击“执行”。

  4. 它应该返回输入的“labelId”下的消息列表,而不是“DRAFT”类型。