2015-01-08 1 views
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 금지됨.

+0

약간의 주제는 아니지만 단지 다음을 확인하십시오. 텍스트 일치는 * substring * 검색을 수행합니다. 따라서 위의 작업을 수행 한 경우 정확한 결과를 얻기 위해 쿼리 결과를 추가로 필터링해야합니다. (예 : 하나의 UID는 AA이고 다른 하나는 AABB 일 수 있음). – hnh

+0

이것은 또한 여러분의 질문에 답을하지는 못하지만 어쨌든 도움이 될 것입니다 : PROPFIND 또는 이와 유사한 것들로 목록을 작성한 후에 이벤트를 가져 오려고한다면''''을 통해이를 수행 할 것입니다. UID에 의한 페치 및 쿼리와는 달리 완전히 손상되지 않은 모든 서버가 지원할 수 있습니다. –

답변

1

iCloud는 광범위한 일정 관리 요청을 지원하지 않습니다. 전체 컬렉션을 먼저 다운로드해야 할 수 있습니다.

0

요청을 게시하는 데 사용하는 URL에 요청시 UID와 함께 ics 파일 링크가 있어야합니다.

관련 문제