使用PHP的Gmail推送通知

使用PHP的Gmail推送通知,php,push-notification,gmail,gmail-api,google-cloud-pubsub,Php,Push Notification,Gmail,Gmail Api,Google Cloud Pubsub,在阅读Gmail API文档时,我注意到该文件指向后端端点URL。其想法是在用户收到新电子邮件时在后端调用process()(避免使用拉取方法) 我创建了一个新的suscription(),并测试了从云平台控制台发布一条新消息。API的工作原理与预期一致。但现在,我不知道如何通知Gmail API开始监视用户收件箱的变化。我们可以在Python中使用watch()和stop(),但是PHP呢 谷歌发现服务API是简单的rest API。您可以将它们与任何能够执行HTTP Post和HTTP Ge

在阅读Gmail API文档时,我注意到该文件指向后端端点URL。其想法是在用户收到新电子邮件时在后端调用process()(避免使用拉取方法)

我创建了一个新的suscription(),并测试了从云平台控制台发布一条新消息。API的工作原理与预期一致。但现在,我不知道如何通知Gmail API开始监视用户收件箱的变化。我们可以在Python中使用
watch()
stop()
,但是PHP呢


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

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


我将首先查看教程,然后在您的身份验证流程正常运行后继续学习。

使用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.com