我发布了一个问题,即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?
答案 0 :(得分:1)
你的第一个问题:
有人可以告诉我这是否是预期的行为?
是的,这是预期的行为(复制)。查看有关历史记录列表的Document:
Users.history:list
列出给定邮箱的所有更改的历史记录。历史结果 按时间顺序返回(增加historyId)。
你的第二个问题:
如果我需要过滤实际的消息 - 而不是草稿,我是否只做labelIds不包含DRAFT?
是的,有一个实际的过滤器。您可以将“labelId”参数更改为除“草稿”之外的任何内容,以便它不会在历史记录中返回草稿结果。
以下是有关如何正确过滤邮件而不返回草稿标签类型的简单指南:
要检查您的labelId列表,请尝试使用此Label API Test Link查看您的标签列表,以确保您将在步骤3中通过执行API使用有效的“labelId”。< / p>
通过执行Message List API获取“historyId”的值,检索消息列表然后获取一个ID,然后使用Message Get API 通过输入ID来检索“historyId”。确保labelId不是“DRAFT”类型,或者您必须从列表中获取另一个id,以避免返回“DRAFT”类型。
然后执行History API Test Link。输入您的“userId”和“startHistoryId”(确保减去您的消息的“startHistoryId”的值1)并使用“labelId”更改从您在步骤2中从GET API检索的标签列表中选择一个,将“historyTypes”更改为“messagesAdded”,然后单击“执行”。
它应该返回输入的“labelId”下的消息列表,而不是“DRAFT”类型。