使用PHP推送Gmail推送通知

时间:2017-03-22 11:14:56

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

阅读Gmail API文档后,我注意到Gmail API provides a way to push notification到后端端点网址。我的想法是在用户收到新电子邮件时调用我们后端的process()(避免使用pull方法)。

我创建了一个新的suscription(Cloud Pub/Sub API),我测试了从Cloud Platform Console发布新消息。 API的工作方式与预期相同。但现在,我不知道如何通知Gmail API开始观看用户INBOX的更改。我们可以在Python中使用watch()stop(),但是PHP呢?

enter image description here

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

使用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"]
    ))
));

这是serviceAccount:gmail-api-push@system.gserviceaccount.comrz的必要条件。

to grant publish privileges