1
caldav 프로토콜을 통해 UID를 기반으로 특정 ICloud 이벤트를 검색하려고합니다. Icloud 캘린더는 caldav를 통해 uid로 이벤트를 검색합니다.
<C:calendar-query xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:caldav">
<D:prop>
<D:getetag/>
<C:calendar-data>
<C:comp name="VCALENDAR">
<C:prop name="VERSION"/>
<C:comp name="VEVENT">
<C:prop name="SUMMARY"/>
<C:prop name="UID"/>
<C:prop name="DTSTART"/>
<C:prop name="DTEND"/>
<C:prop name="DURATION"/>
<C:prop name="RRULE"/>
<C:prop name="RDATE"/>
<C:prop name="EXRULE"/>
<C:prop name="EXDATE"/>
<C:prop name="RECURRENCE-ID"/>
</C:comp>
<C:comp name="VTIMEZONE"/>
</C:comp>
</C:calendar-data>
</D:prop>
<C:filter>
<C:comp-filter name="VCALENDAR">
<C:comp-filter name="VEVENT">
<C:prop-filter name="UID">
<C:text-match>$$EVENT_UID$$</C:text-match>
</C:prop-filter>
</C:comp-filter>
</C:comp-filter>
</C:filter>
은 내가 C를 교체 할 때 : 소품 필터 이름 = "UID"C로 : 소품 필터 이름 = "요약", 요청은 204와 함께 잘 작동하지만 난 함께 시도 UID, 403 금지됨.
약간의 주제는 아니지만 단지 다음을 확인하십시오. 텍스트 일치는 * substring * 검색을 수행합니다. 따라서 위의 작업을 수행 한 경우 정확한 결과를 얻기 위해 쿼리 결과를 추가로 필터링해야합니다. (예 : 하나의 UID는 AA이고 다른 하나는 AABB 일 수 있음). – hnh
이것은 또한 여러분의 질문에 답을하지는 못하지만 어쨌든 도움이 될 것입니다 : PROPFIND 또는 이와 유사한 것들로 목록을 작성한 후에 이벤트를 가져 오려고한다면''''을 통해이를 수행 할 것입니다. UID에 의한 페치 및 쿼리와는 달리 완전히 손상되지 않은 모든 서버가 지원할 수 있습니다. –