Я хочу иметь возможность запрашивать API Gmail через HTTP-запрос GET.
Я пытаюсь запросить API Gmail, чтобы получить счетчик непрочитанных сообщений из метки INBOX.
Справочник по API: https://developers.google.com/gmail/api/v1/reference/users/labels/get
Ссылка API показывает следующий HTTP-запрос для получения непрочитанного числа.
GET https://www.googleapis.com/gmail/v1/users/userId/labels/id
Справочник по API также говорит, что вам нужна авторизация через OAuth 2.0.
Мне удалось получить примеры работы в библиотеке PHP для успешного запроса API, но не хватает документации PHP для написания какого-либо конкретного кода.
Однако в справочнике по API перечислены все HTTP-вызовы для доступа к различным частям API, однако я не могу понять, как использовать OAuth (токены доступа) с этими HTTP-запросами?
Официальная клиентская библиотека PHP поставляется с несколькими примерами: этот это показывает вам, как пройти аутентификацию с помощью OAuth. API документация Также есть много информации об этом процессе.
Чтобы получить количество непрочитанных сообщений, вы должны сделать что-то вроде этого:
// $googleClient is an authenticated instance of 'Google_Client'
$gmail = new \Google_Service_Gmail($googleClient);
$label = $gmail->users_labels->get('me', 'INBOX');
$unreadCount = $label->messagesUnread;
Возможно, вам придется отключить «Просмотр беседы» в настройках Gmail, чтобы получить точный результат.
Доступ к API Gmail в php должен быть похож на другие API Google из php. Может быть, посмотрите на примеры быстрого запуска из календаря или API Google Drive в PHP и поработайте оттуда?
Если у вас есть токен доступа oauth2, вы часто можете просто поместить его в заголовок «Авторизация». c.f. https://tools.ietf.org/html/rfc6750#section-2.1
Хотя, честно говоря, я думаю, что в долгосрочной перспективе будет гораздо проще понять, как это сделать с помощью библиотеки PHP API Google …