Аутентификация API Календаря Google - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь сделать некоторые вызовы Rest-API в Google Calendar API из моего приложения, чтобы показать некоторые данные календаря, и я медленно, но верно немного отчаялся.

Я активировал API, создал учетные данные и загрузил секретный файл Json клиента.Для тестирования я использовал Postman для отправки примера запроса к API, например https://www.googleapis.com/calendar/v3/calendars/{calendar-ID}/acl

Поскольку в файле json не было токена доступа, я использовал «Получить новый токен доступа», ввел все данные из jsonи получил ключ.Но если я использую этот ключ для отправки запроса с авторизацией oAuth2 и того примера API-Call, я получу обратно 401.

Я играл с этим часами без какого-либо успеха.Я не очень опытен с такого рода авторизацией и, конечно, здесь не хватает точки.

На самом деле я просто хочу сделать несколько cUrls из моего php-скрипта, чтобы получить некоторые данные календаря.Может быть, кто-то мог бы описать шаги, которые необходимы для этого.

Заранее спасибо.:)

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Осталась одна проблема.Использование токена доступа для получения данных через почтальон работает между ними.Также используется токен обновления для получения нового токена доступа.Но в моем Curl, когда я выполняю api-запрос, я все равно получаю 401 обратно.Обновление токена доступа с помощью curl работает довольно хорошо, но фактический api-вызов для получения данных, похоже, все еще не работает.

  $oCurl = curl_init();
    curl_setopt($oCurl, CURLOPT_HTTPHEADER, array(
        'Authorization' => 'Bearer '.$token,

    ));

    curl_setopt($oCurl, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($oCurl, CURLOPT_TIMEOUT, 30);
    curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, true);
    curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, 2);
    curl_setopt($oCurl, CURLOPT_URL, $url);
    $response = curl_exec($oCurl);
    $list = json_decode($response );

поэтому Ответ по-прежнему

[code] => 401
[message] => Login Required

Может быть, у кого-то есть подсказка, что здесь не так?:)

€ ладно, изменив маркер «Авторизация» => «Носитель». $ На токен «Авторизация: носитель». $, Сделал это.

Спасибо за помощь

0 голосов
/ 09 октября 2018

Файл учетных данных, который вы загрузили с Google, идентифицирует ваше приложение для Google.Он не дает вам прямого доступа к API.

Чтобы получить доступ к API Google, содержащему личные данные пользователя, вам необходимо пройти аутентификацию с использованием OAuth2, чтобы получить согласие владельца ресурса на доступ к их данным.

Эти ссылки могут помочь вам настроить почтальона, используя идентификатор клиента и секрет клиента, которые вы получили из консоли разработчика Google.

...