0

CalDAV サーバーに接続した後、クエリを実行して、サポートされているサービスを確認できます。たとえば、Lightning が CalDAV サーバーに接続した後、そのサーバーが Task サポートをアドバタイズしている場合にのみ、Task オブジェクトを作成できます。

残念ながら、一部のサーバー (AppSuite、Yahoo など) はタスクをサポートしていますが、明らかにその事実を正しく通知していないため、厳密な PIM クライアント (ライトニングなど) はそれらとタスクをやり取りしません。

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

ただし、標準機能名の完全なリストはどこにもありません。また、タスクがサポートされると予想される名前を見つけることもできません。

誰でもこれに光を当てることができますか?

4

1 に答える 1

2

機能はsupported-calendar-component-set、特定のカレンダーの属性に保持されます。この属性が設定されていない場合は、すべてをサポートしていると想定する必要があります。

コンポーネント セットを取得するには、これを使用します (正しいカレンダー URL と認証を使用)。

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>

supported-calendar-component-set セクションで、VEVENT (カレンダー イベントをサポート)、VTASK (タスクをサポート)、VJOURNAL などを探します。上の例では、カレンダー イベントはサポートされていますが、タスクはサポートされていません。

于 2016-08-03T04:16:01.873 に答える