有没有办法将Gmail手表限制为仅添加邮件?

时间:2016-11-23 00:54:10

标签: gmail-api

为用户设置监视时,是否可以将监视限制为仅添加到收件箱的邮件?

根据文档(https://developers.google.com/gmail/api/v1/reference/users/watch),我看到有INBOX labelId的选项,但我想将其限制为仅添加的消息。我们目前必须通过在随后的history.list调用中的字段字符串中传递'history / messagesAdded'来处理此问题。

2 个答案:

答案 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将仅返回该类型的历史记录。