2016-04-20 106 views
0

是否有任何文件爲什麼谷歌caldav API忽略此請求。谷歌CALDAV忽略過濾器選項

<?xml version="1.0" encoding="UTF-8"?> 
<C:calendar-query xmlns:d="DAV:"  xmlns:C="urn:ietf:params:xml:ns:caldav" xmlns:A="http:/ /apple.com/ns/ical/"> 
<d:prop> 
    <d:getetag/> 
    <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 collation="i;octet">xxxxxxxxxxxx</C:text-match> 
    </C:prop-filter> 
    </C:comp-filter> 
    </C:comp-filter> 
</C:filter> 

它返回每個事件,但它應該只返回一個我在過濾器中請求的事件。

我只能過濾事件與

<C:time-range start="20160326T230000Z" end="20160430T220000Z"/> 

,但一切只是忽略。

+0

很可能它只是不執行這個過濾器上爲什麼這樣做也許闡述。像這樣的查找。你還沒有一個URL <-> UID地圖? – hnh

+0

你應該嘗試刪除** collat​​ion =「i; octet」**屬性。這可能是服務器不支持這種合併(這是必需的,但是..)。 – aff

回答

0

我發現另一種解決方案,通過與caldav API的谷歌只有一個事件。

我使用像$ HREF事件的href網址=「https://apidata.googleusercontent.com/caldav/v2/ IDCalendar /events/**uid.**ics

而且我查詢用:

<?xml version="1.0" encoding="utf-8" ?> 
<C:calendar-multiget xmlns="DAV:"mlns:C="urn:ietf:params:xml:ns:caldav"> 
<prop><getetag/><C:calendar-data/></prop> 
<href>$href</href> 
</C:calendar-multiget> 

和我只得到與UID :)事件

大壩