2016-08-03 71 views
0

連接到CalDAV服務器後,您可以查詢以查看它支持的服務。例如,在Lightning連接到CalDAV服務器之後,如果該服務器通告任務支持,它將只允許您創建任務對象。不幸的是,一些服務器(例如AppSuite,Yahoo)確實支持任務,但顯然沒有正確地宣傳這個事實,所以嚴格的PIM客戶端(例如閃電)不會與他們交談任務。CalDAV服務器如何發佈任務支持?

CalDAV應該如何(正好)這樣做?

我已閱讀https://wiki.wocommunity.org/display/~probert/CalDAV+and+CardDAV+handshake,它解釋了CalDAV握手和連接,並標識連接後由OPTIONS調用返回的DAV功能列表。我們的CalDAV服務器返回以下列表: 1, 2, 3, access-control, calendar-access, addressbook, extended-mkcol, calendar-auto-schedule, calendar-schedule, calendarserver-sharing, calendarserver-principal-search, calendarserver-principal-property-search, calendarserver-private-comments, extended-mkcol, calendar-managed-attachments

但是,我無法在任何地方找到任何詳盡的標準功能名稱列表,也無法找出要支持的任務的名稱。

誰能一些線索呢?

回答

2

該功能保留在任何給定日曆的supported-calendar-component-set屬性中。如果這個屬性沒有設置,那麼應該假定它支持所有的事情。

要獲得組件集,使用這個(用正確的日曆網址和驗證):

PROPFIND https://myserver/caldav/url/12345 <?xml version="1.0" encoding="UTF-8"?> <A:propfind xmlns:A="DAV:"> <A:prop> <C:supported-calendar-component-set xmlns:C="urn:ietf:params:xml:ns:caldav"/> </A:prop> </A:propfind>

這將返回

<D:multistatus> <D:response> <D:href>/caldav/3382/</D:href> <D:propstat> <D:prop> <supported-calendar-component-set> <CAL:comp name="VEVENT"/> </supported-calendar-component-set> </D:prop> <D:status>HTTP/1.1 200 OK</D:status> </D:propstat> </D:response> </D:multistatus>

在支持日曆,成分 - 設置部分,查找VEVENT(支持日曆事件),VTASK(支持任務),VJOURNAL等等。所以在上面的例子中,支持日曆事件,但不支持任務。