有人回复帖子时谷歌GMail回调

时间:2017-02-15 13:59:44

标签: api gmail gmail-api asynccallback

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

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

我正在使用PHP btw,但我只需要概念如何工作以及如何在API和应用程序之间设置这种通信。

2 个答案:

答案 0 :(得分:0)

如果有针对特定thread_id的回复,目前没有可用的检测/观察的API(某些行为类似于回调)。

您必须自己进行检查,进行一些轮询(使用users.threads.get)以查看是否有回复。类似于OP在post(强调我的)中所做的事情:

  

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

答案 1 :(得分:0)

您可以使用Gmail API提供的推送通知。该文档位于此处: https://developers.google.com/gmail/api/guides/push?hl=pl#python
非常简单。创建一个主题,然后为该主题创建推送订阅。它需要一个指向您的Web应用程序的webhook。如文档中所述,为Gmail服务帐户授予必要的权限。
使用以下Python代码获取通知:

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

我们收到带有HistoryId的响应。跟踪所有消息,因为HistoryId可以这样完成:

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

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