收到来自 gmail users.watch API 的推送通知后如何阅读用户 gmail?

Posted

技术标签:

【中文标题】收到来自 gmail users.watch API 的推送通知后如何阅读用户 gmail?【英文标题】:How to read users gmail after receiving push notification from gmail users.watch API? 【发布时间】:2020-06-16 21:52:31 【问题描述】:

我想实现一个后端服务器,它可以在每次收到新邮件时读取(执行某些操作)用户 gmail。我能够弄清楚每次收到新电子邮件时使用 gmail API users.watch, my server can be notified。现在,为了从 gmail 获取新邮件,我的服务器需要用户在选择加入时提供的用户凭据(身份验证令牌)以供观看。无论如何,这些凭据是否可以与推送通知一起发送到我的服务器(可能使用 users.watch API)。

我遇到的实现相同目的的一种方法是将身份验证和刷新令牌存储在数据库中,只能由我的服务器访问。但是如果不将凭据存储在数据库中就可以实现目的会更好。

【问题讨论】:

您希望发布处理 pub sub 的代码以在将来帮助其他人的任何机会。 我在这里分享文档,它基本上有所有需要的代码和详细的解释:developers.google.com/gmail/api/guides/push 【参考方案1】:

当用户对您的应用程序进行身份验证时,假设您请求离线访问,您将获得一个刷新令牌。您应该将其存储在与服务器上的用户关联的安全位置。

当您收到推送通知时,您应该检索存储在服务器上的刷新令牌,并使用它来请求可用于访问用户数据的新访问令牌。

推送通知系统无法向您发送授权,如果它存储您的授权也不是一个非常明智的主意。

【讨论】:

存储刷新令牌解决了我的问题,但我有兴趣探索一些不必存储每个用户的刷新令牌的方法。为此,我遇到了谷歌服务帐户,但无法完全理解如何使用它。不知道这里能不能用google service account来达到目的?

以上是关于收到来自 gmail users.watch API 的推送通知后如何阅读用户 gmail?的主要内容,如果未能解决你的问题,请参考以下文章

gmail API 中的观看请求不起作用

有没有办法将 Gmail 手表限制为仅添加的邮件?

为啥我在通过 IMAP 连接到 Gmail 时收到“需要 Web 登录”消息?

使用 Gmail 的 PHP 邮件

Zurb Ink 电子邮件在 Gmail 中的格式不正确

如何避免电子邮件标题收到:来自未知和电子邮件进入垃圾邮件