воскресенье, 1 марта 2020 г.

Создание событий в Google календаре при помощи Python

Сегодня вся жизнь крутится вокруг событий в гугл-календаре. График работы, напоминания о грядущих работах, о днях рождении, об окончании лицензии на антивирус и много ещё чего.
Намедни захотелось добавить напоминание о работах на линии Россетей, ибо зачастую, узнаю о них уже когда пищат бесперебойники. Инфу нашёл в статье от Karen Collective.

Начинать следует с создания своего проекта в Googe Developer Console
1. Включим Google Calendar API
Переходим на Google Calendar API, создаём новый проект или выбираем существующий
Жмём Продолжить
На следующей странице ничего не добавляем, жмём на Выберете проект и выбираем наш новый проект. 
Затем переходим в меню Окно запроса доступа OAuth, выбираем Внешний и нажимаем Создать
Заполняем Название приложения, логотип (по необходимости) и жмём Сохранить

Переходим в меню Учётные данные Создать учетные данные Идентификатор клиента OAuth
Выбираем Другие типы и жмём Создать
В следующем окне жмём ОК
В поле Индентификаторы клиентов OAuth 2.0 нажимаем справа кнопку скачать и сохраняем файл client*.json. В дальнейшем, его потребуется сохранить в одну директорию со скриптами python

2. Переходим в консоль
Установим необходимые библиотеки Python
sudo pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
Скачиваем все скрипты *.py с репозитория Karenapp
cd domoticz/scripts/python
git clone https://github.com/karenapp/google-calendar-python-api.git
cd google-calendar-python-api/
Скопируем файл client*.json скачанный раннее в эту директорию под именем credentials.json
Отредактируем файл cal_setup.py. Заменим часовой пояс Asia/Kolkata на Europe/Moscow и вставим свой calendar_id. Можно оставить primary, чтобы создавать в основном календаре, а можно и в специальном. Узнать id, можно выбрав нужный календарь тут. К примеру КЕР.
Перейдите в "Интеграция календаря" и скопируйте Идентификатор календаря
Далее необходимо единожды запустить файл create_event.py для получение разрешений приложения "Уведомления о работах на линии Россети" НЕ В УДАЛЕННОЙ КОНСОЛИ. Иначе получим что-то вроде
Please visit this URL to authorize this application: https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=90004701090-1i3m53dsqq1us63egmj0cb210mnofo0r.apps.googleusercontent.com&redirect_uri=.............&access_type=offline
И когда одобрим все права перейдя по ссылке, получим ошибку 404. Поэтому если вы на Windows - качаете Python, если делаете это локально на Ubuntu - запускаете смело скрипт
И даём разрешение на внесение изменений приложению "Уведомления о работах на линии Россети" в основной календарь google-аккаунта
В конце получаем сообщение в браузере
The authentication flow has completed. You may close this window.
Скопируем созданный файл token.pickle из директории со скриптом на машину, откуда будет выполняться скрипт
Переходим в календарь и проверяем событие

Комментариев нет :

Отправить комментарий