如何检测标签是否通过 gmail api 添加到电子邮件?
How to detect if label was added to email via gmail api?
我尝试检测电子邮件是否有一个特定的标签。按照文档 here 我反序列化推送消息并获得 historyId
例如。 390100 但事实证明我无法获得准确的 390100 历史条目。
history.list api 具有 startHistoryId 参数,文档说明您在 之后 获得所有历史记录。
然而,更糟糕的是 390100 历史事件是空的(原文如此!)。 labelsAdded 的真实条目是 在 推送通知中的 historyId 之前 例如。在 39086 未发布
尝试解决方法并减去例如。 15 表格 390100 并使用 startHistoryId 39085
执行 history.list
如果我运气好并且 39085 仍然存在,我将不会收到 404 并最终收到我的标签已添加到消息中的信息。但这对我来说似乎是一个糟糕的黑客攻击。
有没有可靠的方法知道历史标签是在哪一点添加的,有没有可靠的方法向后搜索历史?
我也交叉发了rant/issuehere
你在推送通知中得到的historyId
只是代表当前时间。所以如果你在查询历史时使用这个historyId
,你将得不到任何结果。请改用此工作流程:
- 保存
historyId
.
- 当你得到推送时,使用你在步骤1中保存的
historyId
,你将得到所有相关的更改。
- 保存在推送通知中获得的
hisotryId
,下次使用。
- 重复步骤 2。
例子
- 我开始使用 getProfile-操作
historyId
:
请求
GET https://www.googleapis.com/gmail/v1/users/me/profile?fields=historyId&access_token={YOUR_API_KEY}
回应
{
"historyId": "655156"
}
- 我收到了推送,并且 list the history 自上次以来:
请求
GET https://www.googleapis.com/gmail/v1/users/me/history?labelId=STARRED&startHistoryId=655156&fields=history%2FlabelsAdded&key={YOUR_API_KEY}
响应:
{
"history": [
{
"labelsAdded": [
{
"message": {
"id": "151237ed0d001368",
"threadId": "151237ed0d001368",
"labelIds": [
"STARRED",
"CATEGORY_UPDATES",
"INBOX"
]
},
"labelIds": [
"STARRED"
]
}
]
}
]
}
- 保存我在推送中得到的
historyId
,下次使用。
我尝试检测电子邮件是否有一个特定的标签。按照文档 here 我反序列化推送消息并获得 historyId 例如。 390100 但事实证明我无法获得准确的 390100 历史条目。
history.list api 具有 startHistoryId 参数,文档说明您在 之后 获得所有历史记录。
然而,更糟糕的是 390100 历史事件是空的(原文如此!)。 labelsAdded 的真实条目是 在 推送通知中的 historyId 之前 例如。在 39086 未发布
尝试解决方法并减去例如。 15 表格 390100 并使用 startHistoryId 39085
执行 history.list如果我运气好并且 39085 仍然存在,我将不会收到 404 并最终收到我的标签已添加到消息中的信息。但这对我来说似乎是一个糟糕的黑客攻击。
有没有可靠的方法知道历史标签是在哪一点添加的,有没有可靠的方法向后搜索历史?
我也交叉发了rant/issuehere
你在推送通知中得到的historyId
只是代表当前时间。所以如果你在查询历史时使用这个historyId
,你将得不到任何结果。请改用此工作流程:
- 保存
historyId
. - 当你得到推送时,使用你在步骤1中保存的
historyId
,你将得到所有相关的更改。 - 保存在推送通知中获得的
hisotryId
,下次使用。 - 重复步骤 2。
例子
- 我开始使用 getProfile-操作
historyId
:
请求
GET https://www.googleapis.com/gmail/v1/users/me/profile?fields=historyId&access_token={YOUR_API_KEY}
回应
{
"historyId": "655156"
}
- 我收到了推送,并且 list the history 自上次以来:
请求
GET https://www.googleapis.com/gmail/v1/users/me/history?labelId=STARRED&startHistoryId=655156&fields=history%2FlabelsAdded&key={YOUR_API_KEY}
响应:
{
"history": [
{
"labelsAdded": [
{
"message": {
"id": "151237ed0d001368",
"threadId": "151237ed0d001368",
"labelIds": [
"STARRED",
"CATEGORY_UPDATES",
"INBOX"
]
},
"labelIds": [
"STARRED"
]
}
]
}
]
}
- 保存我在推送中得到的
historyId
,下次使用。