【发布时间】:2021-04-09 22:52:55
【问题描述】:
根据 Gmail API 中的 Push Notifications guide。每当您的 Gmail 邮箱发生变化时,Gmail API 都会通知您的后端服务器应用程序。
为此,您需要设置 Cloud Pub/Sub 客户端并创建主题。之后,您可以配置您的 Gmail 帐户以发送邮箱更新通知。指南说
要配置 Gmail 帐户以向您的 Cloud Pub/Sub 主题发送通知,只需使用您的 Gmail API 客户端调用 Gmail 用户邮箱上的 watch(),就像调用任何其他 Gmail API 一样。为此,请在您的 watch() 请求中提供上面创建的主题名称和任何其他选项,例如要过滤的标签。”这句话摘自“获取 Gmail 邮箱更新
上面链接的指南部分。该指南还提供了发出 watch() 请求的示例。
我的问题是我需要按发件人过滤,而不是标签。我正在创建一个将部署到托管服务提供商(可能是 GCP)的机器人。
我基本上是在寻找一种方法,让 Gmail API 在我收到来自某个发件人的电子邮件时通知机器人。我查看了文档中的watch 方法,似乎唯一可能的过滤器是标签。
那么,当我收到来自某个发件人的电子邮件时,是否有另一种方法可以通过 Gmail API 获取通知?
更新: 哦,好吧,所以我正在阅读有关publishing messages to topics via the Pub/Sub API 的信息,根据Gmail API 文档中watch 的描述,似乎watch 负责让Gmail 向该主题发送(或发布)通知。 Subscriber overview section of the Pub/Sub API docs 这么说
要接收发布到某个主题的消息,您必须创建对该主题的订阅。订阅将主题连接到订阅者应用程序,订阅者应用程序接收和处理发布到主题的消息。"
所以订阅者应用程序将是机器人。根据the Filtering messages section of the Pub/Sub API docs,您可以创建带有过滤器的订阅。它说
“当您从带有过滤器的订阅接收消息时,您只会收到与过滤器匹配的消息。Pub/Sub 服务会自动确认与过滤器不匹配的消息。您可以按消息的属性过滤消息。 "
那么,Gmail 发送(或发布)到主题的消息(或通知)是否包含“发件人”属性?我似乎找不到 Gmail 在通知邮件中包含的属性...
【问题讨论】:
-
你检查了关于设置主题的部分吗?
-
还没有,我现在会调查一下。另外,感谢您的编辑!
-
我刚刚用我发现的内容编辑了这个问题