Я пытаюсь написать сценарий автоматического принятия приглашений в общий календарь с использованием python.
Согласно RFC здесь:
https://github.com/apple/ccs-calendarserver/blob/master/doc/Extensions/caldav-sharing.txt
Я создал следующий xml, который отправляю в виде запроса POST на сервер календаря:
accept_invite_xml = """
<?xml version='1.0' encoding='UTF-8'?>
<CS:invite-reply xmlns='DAV:' xmlns:CS='http://calendarserver.org/ns/'>
<href>urn:x-uid:9DCA674E-5AD8-1992-7828-033C09954A5F</href>
<CS:invite-accepted/>
<CS:hosturl>/calendars/__uids__/419A2758-B533-3019-BF05-32CEFB6E79DC/calendar</CS:hosturl>
<CS:in-reply-to>1e9a9754-f896-43cf-a848-d2f71f5eb10b</CS:in-reply-to>
<CS:summary>calendar</CS:summary>
</CS:invite-reply>
"""
Это POST'd через пакет запросов Python:
headers = {'Content-Type': 'application/xml', 'charset':"utf-8"}
requests.post(url = my_calendar_home_url,
auth = (username,password),
data=accept_invite_xml,
headers=headers)
Но продолжайте получать следующий ответ:
<?xml version='1.0' encoding='UTF-8'?>
<error xmlns='DAV:'>
<valid-request xmlns='http://calendarserver.org/ns/'/>
<error-description xmlns='http://twistedmatrix.com/xml_namespace/dav/'>Missing required XML elements</error-description>
</error>
Насколько я могу судить, в приглашении-ответе отсутствует пропущенный элемент, и предполагается, что приглашающий-ответ является корневым элементом. Я не могу получить доступ к серверу для проверки журналов и отладки на этой стороне, только на клиенте. Спасибо.