首页 > 解决方案 > 如何为 Gmail 手表推送通知 API 应用过滤器

问题描述

我正在尝试订阅/注册推送通知并将其推送到我的服务器。这是我正在尝试的

axios.post(`https://www.googleapis.com/gmail/v1/users/me/watch`, {
            "topicName": "projects/gpubsub/topics/subcription"
        }, util.authHeader(token))

API 工作正常。现在我有一些问题,比如

  1. 如何应用过滤器,例如仅收到特定用户或主题的通知。我看到过滤器在 Microsoft Flow for Gmail 中使用

  2. 如何发送额外数据,以便我可以 在将通知推送到服务器时在属性属性中接收它

标签: node.jspush-notificationgmail-apipower-automate

解决方案


过滤器作为可选参数的一部分发送。

watch (cb) {
const params = {
  userId: 'me',
  resource: {
    labelIds: ['INBOX'],
    labelFilterAction: 'include',
    topicName: configure.Google.TopicName
  }
};

this.gmail.users.watch(params, cb);
}

记住 lableid 是标签的 id 而不是它的名字使用labels.list来查找 id。

我建议您考虑使用官方的 Google apis node.js 库,而不是自己编写代码。


推荐阅读