Читая документы по Gmail API, я заметил, что Gmail API предоставляет способ отправки уведомлений к URL-адресу конечной точки сервера. Идея состоит в том, чтобы вызывать process () в нашем бэкэнде, когда пользователь получает новое электронное письмо (избегая метода вытягивания).
Я создал новую подписку (Cloud Pub / Sub API) и я протестировал публикацию нового сообщения из консоли облачной платформы. API работает как ожидалось. Но сейчас я не знаю, как уведомить Gmail API, чтобы начать следить за изменениями INBOX пользователя. Мы можем использовать watch()
а также stop()
в Python, но как насчет PHP?
API сервиса Google Discovery — это простые API для отдыха. Вы можете использовать их с любым языком, способным предварительно сформировать HTTP Post и HTTP Get.
Google очень хорошо делает вещи проще для разработчиков, поэтому они создали ряд клиентских библиотек с открытым исходным кодом, чтобы помочь разработчикам. Клиентская библиотека PHP API Google это одна такая библиотека. он выполняет большую часть тяжелой работы для вас.
Я бы проверил PHP Быстрый старт учебник, а затем перейти к User.watch после того, как ваш поток аутентификации работает.
Пример кода с использованием 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:[email protected]
,