为用户设置监视时,是否可以将监视限制为仅添加到收件箱的邮件?
根据文档(https://developers.google.com/gmail/api/v1/reference/users/watch),我看到有INBOX labelId的选项,但我想将其限制为仅添加的消息。我们目前必须通过在随后的history.list调用中的字段字符串中传递'history / messagesAdded'来处理此问题。
答案 0 :(得分:1)
很遗憾你不能。你要做的是
获取通知到达时的历史记录。如果添加了新消息,则历史记录会返回json
并包含'messagesAdded'
。
您可以保留predefined array of labels
,如下所示
predefinedLabels = ['UNREAD', 'CATEGORY_PERSONAL', 'INBOX']
现在您可以查看(each is the history json)
if 'messagesAdded' in each:
labels = each["messagesAdded"][0]["message"]["labelIds"]
intersectionOfTwoArrays = list(set(predefinedLabels) & set(labels))
在这里你得到intersection of labels
。现在,您必须使用predefined labels
if set(predefinedLabels) == set(intersectionOfTwoArrays):
#get the messageId and do what you want
最后你可以随心所欲
filter the notification
。最好存储
histroyId
并更新每个notification
并在获得history
时使用它。它会对你有所帮助 仅获取更新历史记录。
请注意我在构建服务器时使用了python
。所以上面使用python
答案 1 :(得分:0)
看起来history.list添加了一个新参数" historyTypes"。如果您将其设置为" messageAdded",则api将仅返回该类型的历史记录。