Google Calendar API using OAuth 2.0

Для добавления новой функциональности в Telegram бота сообщества радиостанции Web 3.0 экосистемы MarsDAO понадобилось реализовать интеграцию с Google календарём, чтобы вытаскивать расписание сетки вещания эфира радиостанции на текущую неделю.

Процесс вкратце описан в README.md соответствующего Github репозитория, но я решил описать его более подробно.

Итак, если у вас до сих пор не создан проект в Google Cloud Platform — самое время его создать. При этом совершенно не важно, как он будет называться — оставляю выбор имени проекта GCP за Вами. Созданный Вами проект будет как бы контейнером для OAuth 2.0 клиента.

Следующим шагом, необходимо настроить OAuth consent screen для Вашего приложения. Лично я заполнял только необходимые поля основных настроек OAuth consent screen, оставляя без изменения шаги Scopes и Optional Info.

Теперь, нам нужно создать сам клиент OAuth 2.0, после чего для Вас сгенерируется необходимые для его работы Client ID и Client secret:

Обращаю Ваше внимание на Authorized redirect URIs — эта площадка нам понадобится для получения значения Refresh token. Также, не забудьте загрузить себе JSON-файл с деталями OAuth 2.0 клиента, который Ваше приложение будет использовать.

ВАЖНО

Необходимо проверить, что third-party connection в вашем Google managed account для Google Calendar отсутствует подключение к вашему проекту. Возможно, Вы уже подключались ранее для каких-то других приложений.

Ну что, нам только остаётся идти в указанную выше песочницу и сгенерировать Refresh token, как показано на картинке:

Таким образом, мы делаем следующее:

  • Выбираем все функции Google Calendar API v3 в Step 1 — Select & authorize APIs
  • Нажимаем на шестерёнку с дополнительными настройками OAuth 2.0 Configuration
  • Ставим галочку рядом с Use your own OAuth credentials
  • Добавляем свои OAuth Client ID и OAuth Client secret, полученные ранее
  • Нажимаем кнопку Authorize APIs
  • Разрешаем подключение в открывшемся окне

Остаётся только скопировать значение Refresh token на Step 2 — Exchange authorization code for tokens и вставить его в наш JSON-файл, который будет использоваться в приложении для подключения к Google календарю.

Обсуждение закрыто.