我正在集成发布/订阅功能,以便获取 G-Suite 中用户发送和接收的电子邮件的副本。我很快意识到这可能会变得很喋喋不休。似乎收件箱中任何内容的每个动作都会触发一个历史事件,我认为这在某些情况下很有用,但在这种情况下,我实际上只关心这两个事件(正在发送或接收的电子邮件)。
为了减少处理量,我看到了可以在哪里添加订阅过滤器,但是我很难找到所有选项的位置。理想情况下,我希望根据标签 id 进行过滤,因为这样我就可以创建一个过滤器,其中标签 id 必须是“已发送”或“收件箱”。
有人可以指导我吗?
Cloud Pub/Sub 消息的 Gmail 过滤未在订阅中设置,而是在 将 Gmail 推送通知连接到 Cloud Pub/Sub 时设置。当您指定
labelIds
时,您可以设置 labelFilterBehavior
和 topicName
。如该文档所示,示例 POST
请求将是:
POST "https://www.googleapis.com/gmail/v1/users/me/watch"
Content-type: application/json
{
topicName: "projects/myproject/topics/mytopic",
labelIds: ["INBOX"],
labelFilterBehavior: "INCLUDE",
}
Gmail 推送通知生成的 Pub/Sub 消息不包含任何属性,因此无法通过基于 Pub/Sub 订阅的过滤器进行基于标签的过滤。