There are 999 reasons to become levi niner. Find yours at levi9.com/jobs
×Закрыть

Вопрос о Google Calendar API authentification

Доброго времени суток. Подскажите пожалуйста.

Есть скрипт на PHP который вытягивает из пользовательского google календаря события c помощью соответствующего АПИ. Для того что бы аутентифицировать пользователя делатются следующие шаги:

1. Create your secret client json file:
Login into your google account
Go to console.developers.google.com/apis/library
Select Calendar API
Press Create project
Then go into Credentials, press create credentials using service account key
Chose New service account, it’s name, its role (project/owner) and create the new secret json key

2. In script.php show path to secret json.

3. Then go to control panel in google apis site and check that caledar api is on

4. Go to google calendar, settings, share this calendar and add „service account ID” to alowed accounts.

5. $client = new Google_Client();
$credentialsJson=’/path to secret json’;
$client->setAuthConfig($credentialsJson);
$client->setScopes(’www.googleapis.com/auth/calendar’)

$service = new Google_Service_Calendar($client);
global $output;
$calendarId = $output[’email’];

После этих шагов все работает. Проблема в том, что конечные пользователи не будут выполнять шаги 1 — 4, а делать это за них не вариант. По этому хочется автоматизировать эти шаги, что бы пользователю оставалось ввести только логин/пароль гугл и скрипт работал Возможно ли это? Или тут какой то другой способ аутентификиции нужен?

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Вам нужно проделать шаги 1-3 единожды для вашего продукта и не с учеткой пользователя, а с учеткой заведенной для вашего продукта.

Изучать вопрос стоит начать с developers.google.com/...​identity/protocols/OAuth2 (ваш случай — раздел «Web server applications»)

ваше приложение с «secret client json file» подготовит запрос, который для пользователя отобразит следующую страницу:
images.duckduckgo.com/...​-auth-permissions.png&f=1
Согласиться со списком запрашиваемых разрешений — единственное взаимодействие пользователя с API гугла. Он не должен ничего регистрировать.

P.S.
developers.google.com/oauthplayground — здесь можно «подергать» апишки.

Подписаться на комментарии