好的,我正在尝试对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:"/>
如果我知道错误是什么会有所帮助。有什么建议吗?
答案 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>