我们的软件实现了caldav实现,使我们的用户能够访问iOS或Mac OS X中的联系人和日程安排。
我目前头痛的是,待办事项日历没有显示在Reminders.app中。 (当它仍处于iCal侧边栏时确实显示。)澄清:任务本身是可见的,但日历不在侧栏中。
我在这里粘贴了房产回复。任何人都能指出我错过的东西吗?
<D:response>
<D:href>/dav/fg/todos1/</D:href>
<D:propstat>
<D:prop>
<I:calendar-color/>
<I:calendar-order>700</I:calendar-order>
<B:calendar-timezone>BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//intevo.websolutions//TEAMBOX//DE
CALSCALE:GREGORIAN
METHOD:PUBLISH
BEGIN:VTIMEZONE
TZID:Europe/Vienna
BEGIN:STANDARD
DTSTART:20111030T020000
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZNAME:CET
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20110327T030000
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
TZNAME:CEST
END:DAYLIGHT
END:VTIMEZONE
END:VCALENDAR
</B:calendar-timezone>
<D:current-user-privilege-set>
<D:privilege>
<D:read/>
</D:privilege>
<D:privilege>
<D:read-acl/>
</D:privilege>
<D:privilege>
<D:read-current-user-privilege-set/>
</D:privilege>
</D:current-user-privilege-set>
<D:displayname>Aufgaben</D:displayname>
<CS:getctag>"5109d85d95fece7816d9704e6e5b1279"</CS:getctag>
<D:owner>
<D:href>/dav/fg/</D:href>
</D:owner>
<D:resourcetype>
<B:calendar/>
<D:collection/>
</D:resourcetype>
<B:supported-calendar-component-set>
<B:comp name="VTODO"/>
</B:supported-calendar-component-set>
<D:supported-report-set>
<D:supported-report>
<D:report>
<B:calendar-query/>
</D:report>
</D:supported-report>
<D:supported-report>
<D:report>
<B:calendar-multiget/>
</D:report>
</D:supported-report>
<D:supported-report>
<D:report>
<D:principal-property-search/>
</D:report>
</D:supported-report>
<D:supported-report>
<D:report>
<D:principal-search-property-set/>
</D:report>
</D:supported-report>
</D:supported-report-set>
</D:prop>
<D:status>HTTP/1.1 200 OK</D:status>
</D:propstat>
</D:response>
答案 0 :(得分:0)
我注意到的唯一奇怪的事情是,对于todos响应,你没有为缺少的属性(具有404状态)的propstat,而你有所有其他日历。
另一方面,客户端的Brief标头设置为t(参见http://tools.ietf.org/html/draft-murchison-webdav-prefer),所以这不重要......
希望您可以找到解决方案,但如果您感兴趣,Apple人员可以参加Calconnect Interop活动:http://www.calconnect.org/calconnect28.shtml
答案 1 :(得分:0)
OS X 10.8和10.9之间的客户端行为发生了变化。 OS X 10.9中的版本对特权的解释更为严格,尽管它可能不是最严格意义上的标准。
我在我们的服务器上跟踪了类似的问题,似乎罪魁祸首是<current-user-privilege-set>
标记中返回的权限。我不知道哪个特权特别导致Reminders.app显示该文件夹,但返回以下内容似乎可以完成这项工作:
<write-acl/>
<write-content/>
<write-properties/>
<read-current-user-privilege-set/>
<read/>
<write/>
<write-content/>
<write-properties/>
<bind/>
<unbind/>
<read-free-busy xmlns="urn:ietf:params:xml:ns:caldav"/>
您可能希望尝试添加各个权限,直到显示该文件夹(或将所有权限全部添加,然后逐个删除)。请注意,Reminders.app在刷新时很懒,因此您可能需要删除并添加帐户才能使更改生效。
作为参考,以下是我们任务文件夹的完整回复:
<response>
<href>/webdav/test@emclient.com/T%C3%A2ches/</href>
<propstat>
<prop>
<displayname>Tâches</displayname>
<resourcetype>
<collection/>
<calendar xmlns="urn:ietf:params:xml:ns:caldav"/>
</resourcetype>
<supported-report-set>
<supported-report>
<report>
<acl-principal-prop-set/>
</report>
</supported-report>
<supported-report>
<report>
<principal-match/>
</report>
</supported-report>
<supported-report>
<report>
<principal-property-search/>
</report>
</supported-report>
<supported-report>
<report>
<principal-search-property-set/>
</report>
</supported-report>
<supported-report>
<report>
<expand-property/>
</report>
</supported-report>
<supported-report>
<report>
<calendar-query xmlns="urn:ietf:params:xml:ns:caldav"/>
</report>
</supported-report>
<supported-report>
<report>
<calendar-multiget xmlns="urn:ietf:params:xml:ns:caldav"/>
</report>
</supported-report>
<supported-report>
<report>
<free-busy-query xmlns="urn:ietf:params:xml:ns:caldav"/>
</report>
</supported-report>
<supported-report>
<report>
<sync-collection/>
</report>
</supported-report>
</supported-report-set>
<owner>
<href>/webdav/users/test@emclient.com/</href>
</owner>
<current-user-privilege-set>
<privilege>
<bind-item xmlns="http://icewarp.com/ns/"/>
</privilege>
<privilege>
<write-acl/>
</privilege>
<privilege>
<unbind-item xmlns="http://icewarp.com/ns/"/>
</privilege>
<privilege>
<write-content/>
</privilege>
<privilege>
<lookup xmlns="http://icewarp.com/ns/"/>
</privilege>
<privilege>
<read-content xmlns="http://icewarp.com/ns/"/>
</privilege>
<privilege>
<bind-collection xmlns="http://icewarp.com/ns/"/>
</privilege>
<privilege>
<unbind-collection xmlns="http://icewarp.com/ns/"/>
</privilege>
<privilege>
<write-properties/>
</privilege>
<privilege>
<read-current-user-privilege-set/>
</privilege>
<privilege>
<read/>
</privilege>
<privilege>
<write/>
</privilege>
<privilege>
<write-content/>
</privilege>
<privilege>
<write-properties/>
</privilege>
<privilege>
<bind/>
</privilege>
<privilege>
<unbind/>
</privilege>
<privilege>
<read-free-busy xmlns="urn:ietf:params:xml:ns:caldav"/>
</privilege>
</current-user-privilege-set>
<supported-calendar-component-set xmlns="urn:ietf:params:xml:ns:caldav">
<comp name="VTODO"/>
</supported-calendar-component-set>
<calendar-order xmlns="http://apple.com/ns/ical/">2</calendar-order>
<getctag xmlns="http://calendarserver.org/ns/">"1389952517:35"</getctag>
<sync-token>"1389952517:35"</sync-token>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
</response>