我们为我们的软件提供了一个可用的caldav实现,使我们的用户能够从iOS或Mac访问联系人和日程。
我现在最头疼的是待办事项日历没有显示在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>完整的交换在这里http://pastebin.com/aKN4Yw8Q
发布于 2013-06-14 11:49:04
我注意到的唯一奇怪的事情是,对于todos响应,您没有针对缺少的属性(状态为404 )的propstat,而您有针对所有其他日历的propstat。
另一方面,客户端有一个简短的标头设置为t(参见https://datatracker.ietf.org/doc/html/draft-murchison-webdav-prefer ),所以这应该无关紧要...
希望到那时你已经找到了解决方案,但如果你感兴趣的话,苹果公司的人在Calconnect Interop活动上有很好的代表性:http://www.calconnect.org/calconnect28.shtml
发布于 2014-01-17 22:50:49
在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>https://stackoverflow.com/questions/16981140
复制相似问题