如何解决如何让 Gmail API 在我收到来自某个发件人的电子邮件时通知机器人
根据 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 说
要接收发布到某个主题的消息,您必须创建对该主题的订阅。订阅将主题连接到订阅者应用程序,该应用程序接收和处理发布到该主题的消息。"
因此订阅者应用程序将是机器人。根据{{3}},您可以使用过滤器创建订阅。它说
“当您从带有过滤器的订阅接收消息时,您只会收到符合过滤器的消息。Pub/Sub 服务会自动确认不符合过滤器的消息。您可以按消息的属性过滤消息。 "
那么,Gmail 发送(或发布)到该主题的消息(或通知)是否包含“发件人”属性?我似乎找不到 Gmail 在通知邮件中包含的属性...
解决方法
默认不填充任何属性
在此处查看此示例通知结构:https://developers.google.com/gmail/api/guides/push。如 spec 中所述,只要填充了数据(用于 Gmail API 通知),属性就可以为空。
所以您的问题的答案 - 如果您找不到“发件人”属性 - 这是因为邮件不包含任何内容。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。