有人回复主题时 Google GMail 回调

问题描述 投票:0回答:2

我正在使用 Google GMail Api。同步请求一切正常。但是,当有人以某种方式回复给定的 thread_id 回调时,我希望收到通知。

我找到了这篇关于推送通知的文章https://developers.google.com/gmail/api/guides/push?hl=pl,它很棒,但我仍然不知道如何设置上面描述的观察者。

顺便说一句,我正在使用 PHP,但我只需要了解它是如何工作的以及如何在 API 和应用程序之间设置这种通信。

gmail gmail-api asynccallback
2个回答
1
投票

您可以使用 Gmail API 提供的推送通知。该文档可在此处获取: https://developers.google.com/gmail/api/guides/push#python

这非常简单。创建一个主题,然后为该主题创建推送订阅。它需要一个指向您的网络应用程序的网络钩子。如文档中所述,向 Gmail 服务帐户授予必要的权限。
使用以下 Python 代码来获取通知:

request = {
  'labelIds': ['INBOX'],
  'topicName': 'projects/myproject/topics/mytopic'
   }
   
gmail.users().watch(userId='me', body=request).execute()

我们收到带有 HistoryId 的响应。跟踪历史记录以来的所有消息可以这样完成:

history = (service.users().history().list(userId=user_id, startHistoryId=start_history_id)

我发现以下视频很有帮助:
https://www.youtube.com/watch?v=wjHp9_NAEJo


0
投票

目前没有可用的 API 可以检测/观察(类似于回调的行为)是否有特定

thread_id
的回复。

您必须自己进行检查,进行一些轮询(使用

users.threads.get
)以查看是否有回复。类似于OP在这篇post中所做的事情(强调我的):

我们有一个网络应用程序,它利用 Gmail API 代表我们的用户自动发送某些电子邮件。当应用程序发送电子邮件时,它会存储 Gmail API 返回的 threadId。 然后,它使用此 threadId 轮询 Gmail users.threads.get API,寻找回复。 当检测到回复时,它会暂停以后的电子邮件。

© www.soinside.com 2019 - 2024. All rights reserved.