Создание событий в Google календаре при помощи Python
Сегодня вся жизнь крутится вокруг событий в гугл-календаре. График работы, напоминания о грядущих работах, о днях рождении, об окончании лицензии на антивирус и много ещё чего.
Намедни захотелось добавить напоминание о работах на линии Россетей, ибо зачастую, узнаю о них уже когда пищат бесперебойники. Инфу нашёл в статье от Karen Collective.
Начинать следует с создания своего проекта в Googe Developer Console
1. Включим Google Calendar API
Переходим на Google Calendar API, создаём новый проект или выбираем существующий
Жмём Продолжить
На следующей странице ничего не добавляем, жмём на Выберете проект и выбираем наш новый проект.
Затем переходим в меню Окно запроса доступа OAuth, выбираем Внешний и нажимаем Создать
Заполняем Название приложения, логотип (по необходимости) и жмём Сохранить
Выбираем Другие типы и жмём Создать
В следующем окне жмём ОК
В поле Индентификаторы клиентов OAuth 2.0 нажимаем справа кнопку скачать и сохраняем файл client*.json. В дальнейшем, его потребуется сохранить в одну директорию со скриптами python
2. Переходим в консоль
Установим необходимые библиотеки Python
sudo pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlibСкачиваем все скрипты *.py с репозитория Karenappcd 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 из директории со скриптом на машину, откуда будет выполняться скриптПереходим в календарь и проверяем событие

