Google CardDAV - 返回"错误",没有任何迹象表明原因?

时间:2014-11-25 18:10:09

标签: runtime-error carddav

好的,我正在尝试对Google CardDAV界面进行非常简单的查询。我有一个有效的OAuth密钥,我有一个有效的电子邮件地址。尝试使用curl:

curl --request REPORT  \
     --header "Content-Type: text/xml" \
     --header "Depth: 1" \
     --header "Authorization: Bearer <OAuth Key Here>" \
     --data-ascii "<?xml version=\"1.0\" encoding=\"utf-8\"?> \
                  <D:addressbook-query xmlns:card="urn:ietf:params:xml:ns:carddav"
                     xmlns:cs="http://calendarserver.org/ns/" xmlns:D="DAV:"
                     xmlns:ical="http://apple.com/ns/ical/"> \
                    <card:allprop/> \
                  </D:addressbook-query>" \
https://www.googleapis.com/carddav/v1/principals/<Email Address Here>/lists/default

我已经验证了XML,但我从谷歌获得的回复是:

<?xml version="1.0" encoding="UTF-8"?>
<d:error xmlns:d="DAV:"/>

如果我知道错误是什么会有所帮助。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

地址簿查询的名称空间应该是卡,而不是DAV,而allprop应该是DAV。我还发现Google CardDav需要一个过滤器,但您可以包含一个空标准,它将返回所有元素。见下文:

<?xml version="1.0" encoding="utf-8" ?>
<C:addressbook-query xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:carddav">
<D:allprop>
    <D:getetag />
    <C:address-data content-type="application/vcard+xml" version="4.0"/>
</D:allprop>
<C:filter>
    <C:prop-filter name="FN">
    </C:prop-filter>    
</C:filter>
</C:addressbook-query>