Google Calendar - Python
Цена договорная
Задача: Написать классы на Python для взаимодействия с календарем Google через Google API Workspace, который будет работать на сервере без GUI и интерактивности. Код должен уметь подключаться к аккаунту google, управлять календарями и событиями в них. Обязательно реализовать обработку ошибок и исключений.
Код разбить на 3 класса:
Class GAPIWorkspace - управляет авторизацией Google API Workspace.
Class GCalendar - работает с календарями Google. Содержит методы: create, delete, select, edit, eventlist, get.
Class GEvent - работает с событиями в календаре Google. Содержит методы: create, delete, select, edit.
- Платформа: Debian GNU/Linux 11.
- Язык программирования: Python3, поддержка версии 3.9.2.
- Код оформить в виде классов для дальнейшего использования.
Вспомогательные скрипты и документы:
- Мануал по установке требуемых зависимостей
- Рабочий пример использования кода
Пример предполагаемого использования:
IDuserOAuth={Oauth json data}
credsfile='./creds.json'
gconn=GAPIWorkspace(IDuserOAuth, filename=credsfile)
calendar=GCalendar(gconn)
data={'name':'Календарь123', 'description':'Описание календаря', 'timezone':'GMT+03:00', 'share':['user(a)gmail.com',]}
c1=calendar.create(data)
calendar.delete(c1)
data={'name':'Календарь456', 'descr_inc':'Описание календаря'}
c2=calendar.select(data)
data={'name':'МойКалендарь', 'description':'Описание календаря', 'timezone':'GMT+02:00', 'share':['anotheruser(a)gmail.com',]}
c2=calendar.edit(c2, data)
calendar.get(c2)
event=GEvent(calendar)
elist=[]
data={'from':'1729223248', 'till':'1729335458', 'limit':10}
elist=calendar.eventlist(c2, data)
for e in elist:
e=event.edit(e, alarm={'type':'message', 'time':'1800'})
calendar.get(c2)
event=GEvent(calendar)
edata={'name':'Мероприятие1', 'timestamp':'1729223248', 'duration':'3600', 'description':'Описание мероприятия', 'alarm':[{'type':'message', 'time':'1800'}]}
e1=event.create(edata)
event.delete(e1)
edata={'name':'Мероприятие2', 'timestamp':'1729223248', 'descr_inc':'Описание мероприятия'}
e2=event.select(edata)
edata={'name':'МоеМероприятие', 'timestamp':'1729335458', 'duration':'1800', 'description':'Описание мероприятия', 'alarm':[{'type':'message', 'time':'3600'}]}
e2=event.edit(e2, edata)
Код разбить на 3 класса:
Class GAPIWorkspace - управляет авторизацией Google API Workspace.
Class GCalendar - работает с календарями Google. Содержит методы: create, delete, select, edit, eventlist, get.
Class GEvent - работает с событиями в календаре Google. Содержит методы: create, delete, select, edit.
- Платформа: Debian GNU/Linux 11.
- Язык программирования: Python3, поддержка версии 3.9.2.
- Код оформить в виде классов для дальнейшего использования.
Вспомогательные скрипты и документы:
- Мануал по установке требуемых зависимостей
- Рабочий пример использования кода
Пример предполагаемого использования:
IDuserOAuth={Oauth json data}
credsfile='./creds.json'
gconn=GAPIWorkspace(IDuserOAuth, filename=credsfile)
calendar=GCalendar(gconn)
data={'name':'Календарь123', 'description':'Описание календаря', 'timezone':'GMT+03:00', 'share':['user(a)gmail.com',]}
c1=calendar.create(data)
calendar.delete(c1)
data={'name':'Календарь456', 'descr_inc':'Описание календаря'}
c2=calendar.select(data)
data={'name':'МойКалендарь', 'description':'Описание календаря', 'timezone':'GMT+02:00', 'share':['anotheruser(a)gmail.com',]}
c2=calendar.edit(c2, data)
calendar.get(c2)
event=GEvent(calendar)
elist=[]
data={'from':'1729223248', 'till':'1729335458', 'limit':10}
elist=calendar.eventlist(c2, data)
for e in elist:
e=event.edit(e, alarm={'type':'message', 'time':'1800'})
calendar.get(c2)
event=GEvent(calendar)
edata={'name':'Мероприятие1', 'timestamp':'1729223248', 'duration':'3600', 'description':'Описание мероприятия', 'alarm':[{'type':'message', 'time':'1800'}]}
e1=event.create(edata)
event.delete(e1)
edata={'name':'Мероприятие2', 'timestamp':'1729223248', 'descr_inc':'Описание мероприятия'}
e2=event.select(edata)
edata={'name':'МоеМероприятие', 'timestamp':'1729335458', 'duration':'1800', 'description':'Описание мероприятия', 'alarm':[{'type':'message', 'time':'3600'}]}
e2=event.edit(e2, edata)
- Файлы
Отзывы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.