我正在使用 Google GMail Api。同步请求一切正常。但是,当有人以某种方式回复给定的 thread_id 回调时,我希望收到通知。
我找到了这篇关于推送通知的文章https://developers.google.com/gmail/api/guides/push?hl=pl,它很棒,但我仍然不知道如何设置上面描述的观察者。
顺便说一句,我正在使用 PHP,但我只需要了解它是如何工作的以及如何在 API 和应用程序之间设置这种通信。
您可以使用 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
目前没有可用的 API 可以检测/观察(类似于回调的行为)是否有特定
thread_id
的回复。
users.threads.get
)以查看是否有回复。类似于OP在这篇post中所做的事情(强调我的):
我们有一个网络应用程序,它利用 Gmail API 代表我们的用户自动发送某些电子邮件。当应用程序发送电子邮件时,它会存储 Gmail API 返回的 threadId。 然后,它使用此 threadId 轮询 Gmail users.threads.get API,寻找回复。 当检测到回复时,它会暂停以后的电子邮件。