【问题标题】:Gmail Push Notification using PHP使用 PHP 的 Gmail 推送通知
【发布时间】:2017-08-14 11:22:24
【问题描述】:

阅读 Gmail API 文档后,我注意到 Gmail API provides a way to push notification 指向后端端点 URL。这个想法是当用户收到新电子邮件时在我们的后端调用 process() (避免拉取方法)。

我创建了一个新订阅 (Cloud Pub/Sub API),并测​​试了从 Cloud Platform Console 发布一条新消息。 API 按预期工作。但是现在,我不知道如何通知 Gmail API 开始观察用户收件箱的变化。我们可以在 Python 中使用 watch()stop(),但是 PHP 呢?

【问题讨论】:

    标签: php push-notification gmail gmail-api google-cloud-pubsub


    【解决方案1】:

    Google 发现服务 API 是简单的 REST API。您可以将它们与任何能够执行 HTTP Post 和 HTTP Get 的语言一起使用。

    Google 非常擅长让开发人员的工作变得更轻松,因此他们创建了许多开源客户端库来帮助开发人员。 Google APIs PHP Client library 就是这样一个库。它为您处理大部分繁重的工作。

    我会先查看PHP Quickstart 教程,然后在您的身份验证流程正常工作后继续阅读User.watch

    【讨论】:

      【解决方案2】:

      使用 HTTP POST 的代码示例:

      // Google API
      $client = getClient();
      
      // Variables
      $user = 'me';
      $access_token = $client->getAccessToken()['access_token'];
      $topic_name = 'projects/xxxx/topics/xxxx';
      
      // POST request    
      $ch = curl_init('https://www.googleapis.com/gmail/v1/users/' . $user . '/watch');
      
      curl_setopt_array($ch, array(
          CURLOPT_POST => TRUE,
          CURLOPT_RETURNTRANSFER => TRUE,
          CURLOPT_HTTPHEADER => array(
              'Authorization: Bearer ' . $access_token,
              'Content-Type: application/json'
          ),
          CURLOPT_POSTFIELDS => json_encode(array(
              'topicName' => $topic_name,
              'labelIds' => ["INBOX"]
          ))
      ));
      

      to grant publish privilegesserviceAccount:gmail-api-push@system.gserviceaccount.com 是必需的。

      【讨论】:

        猜你喜欢
        • 2020-10-18
        • 1970-01-01
        • 1970-01-01
        • 2019-07-28
        • 2018-04-17
        • 2015-08-19
        • 2017-08-25
        • 2012-11-27
        • 1970-01-01
        相关资源
        最近更新 更多