Для добавления новой функциональности в 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:
- Application type: Web application
- Name: Google Calendar (не обязательно называть именно так)
- Authorized redirect URIs: https://developers.google.com/oauthplayground
Обращаю Ваше внимание на 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 календарю.
Обсуждение закрыто.