Перейти к основному содержимому

Google Календарь

Модуль 1С/OSOPI_GoogleCalendarКоманда CLIgcalendar#Использоватьoint/api/gcalendar

Начало работы​

Для начала работы необходимо создать аккаунт и новый проект на главной странице консоли Google Cloud, после чего подключить сервис Calendar на его странице в Marketplace

Далее необходимо получить токен доступа для авторизации при вызове функций библиотеки. Сделать это можно одним из двух способов:

Авторизация через Service Account​

Получить токен доступа можно при помощи секретного ключа Service Account. Для этого необходимо:

  1. Выбрать проект и в боковом меню перейти в раздел IAM & Admin -> Service Accounts
  2. Нажать Create service account и заполнить необходимые поля для создания нового аккаунта
  3. В списке аккаунтов найти созданный и нажать Actions (три точки) в правой части записи
  4. Выбрать пункт Manage keys
  5. Нажать Add key -> Create new key
  6. Выбрать JSON и скачать данные полученного ключа

Далее полученный JSON файл необходимо передать (как коллекцию, путь к файлу или двоичные данные) в функцию ПолучитьТокенServiceАккаунта. Также при вызове этой функции можно указать доступы и время жизни полученного токена. По истечении времени жизни, новый токен может быть получен повторным вызовом функции ПолучитьТокенServiceАккаунта

OAuth авторизация​

OAuth авторизация позволяет получать временный обновляемый токен доступа для конкретного пользователя Google через страницу авторизации. Для активации OAuth авторизации в проекте необходимо выполнить следующие действия:

  1. Выберите проект и в боковом меню перейдите в раздел APIs and Services -> OAuth consent screen
  2. Выберите пункт External
  3. Заполните необходимую информацию в предложенных полях
  4. Нажмите Save and continue по окончанию процесса настройки
  5. Нажмите Publish App
  6. В боковом меню выберите пункт Credentials -> Create Credentials -> OAuth client ID
  7. Введите имя и выберите Application type - Desktop app
  8. Сохраните ClientID и Client Secret

После получения клиентского ID, необходимо получить URL для авторизации. Сделать это можно передав ClientID в функцию СформироватьСсылкуПолученияКода. Полученную в результате выполнения функцию ссылку необходимо открыть в браузере, авторизоваться со своим аккаунтом Google, после чего быстро передать код доступа из URL (текст в адресной строке после code=) в функцию ПолучитьТокенПоКоду

important

Время жизни кода крайне мало. После перехода по ссылке из функции СформироватьСсылкуПолученияКода и авторизации со своим аккаунтом Google, необходимо максимально быстро передать его в функцию ПолучитьТокенПоКоду. Лучше всего заранее подготовить обработку с полем для ввода и кнопкой (в 1С), либо же использовать CLI версию ОПИ. В случае истечения срока жизни кода до выполнения функции ПолучитьТокенПоКоду, будет получена ошибка invalid_grant

В результате функции будет структура, содержащая access_token и refresh_token: первый служит для использования при вызове остальных функций библиотеки, а второй - для получения нового access_token по истечению срока его действия (при помощи функции ОбновитьТокен)

refresh_token не изменяется при получении нового access_token и может быть использован многократно

Результат функции ПолучитьТокенПоКоду в виде JSON

{
"token_type": "Bearer",
"refresh_token": "1//09au6OES3JN9oCgYIARAAGAkSNwF-L9Ir1B7uawfwafT1wE0FKO519Xj6JxawfawfyjMyJ_QlUZYLHZqw",
"scope": "https://www.googleapis.com/auth/calendar",
"expires_in": 3599,
"access_token": "ya29.a0AfB_byA344tXkIawdawdwadadhyZQV8bSZn_snNXtY2HLb7l71awdawdawdad-ASgpzyOSWIvEmPruhUa_1yCCq6jvoD0r_q-fNEsARrH8zpJ3c6LNGWvwdg8CXsSxYaCgYKAWkSawfwafawfrCK0EP5kZY_A0171"
}