如何让 Gmail API 在我收到来自某个发件人的电子邮件时通知机器人

如何解决如何让 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 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)> insert overwrite table dwd_trade_cart_add_inc > select data.id, > data.user_id, > data.course_id, > date_format(
错误1 hive (edu)> insert into huanhuan values(1,'haoge'); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive> show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 <configuration> <property> <name>yarn.nodemanager.res