【发布时间】:2014-06-13 09:53:58
【问题描述】:
我目前正在尝试通过 CardDav 协议在 iCloud 中操作我的联系人列表组。 为此,我在 Contact.app 中创建了一个包含联系人的组: Screenshot
当我直接从联系人应用程序导出联系人的 vCard 时,我的 CATEGORIES 属性中有与我的联系人关联的组:
BEGIN:VCARD
VERSION:3.0
PRODID:-//Apple Inc.//Mac OS X 10.9.2//EN
N:Lebron;Candide;;;
FN:Candide Lebron
ORG:Podbox;
NOTE:Un petit peu candide.
CATEGORIES:GroupForAutomaticTestDELTA
UID:d4c1baf6-f603-4fb5-8f19-d45eb1e7fb23
X-ABUID:D4C1BAF6-F603-4FB5-8F19-D45EB1E7FB23:ABPerson
END:VCARD
但是,当我请求 iCloud 服务器检索此联系人时,我没有设置 CATEGORIES 属性,但我检索了两张 vCard,一张用于联系人,一张用于组。组 vCard 包含对其成员的引用。
请求:
curl --request REPORT --user ****@*****:**** --header "Content-Type: text/xml" --data '
<?xml version="1.0" encoding="utf-8" ?>
<C:addressbook-query xmlns:D="DAV:"
xmlns:C="urn:ietf:params:xml:ns:carddav">
<D:prop>
<C:address-data/>
</D:prop>
</C:addressbook-query>' https://contacts.icloud.com/802592377/carddavhome/card/
联系 VCard:
BEGIN:VCARD
VERSION:3.0
PRODID:-//Apple Inc.//Mac OS X 10.9.2//EN
N:Lebron;Candide;;;
FN:Candide Lebron
ORG:Podbox;
NOTE:Un petit peu candide.
REV:2014-06-12T16:53:51Z
UID:d4c1baf6-f603-4fb5-8f19-d45eb1e7fb23
END:VCARD
组电子名片:
BEGIN:VCARD
VERSION:3.0
PRODID:-//Apple Inc.//AddressBook 8.0//EN
N:GroupToBeAddedTO
FN:GroupToBeAddedTO
X-ADDRESSBOOKSERVER-KIND:group
X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:d4c1baf6-f603-4fb5-8f19-d45eb1e7fb23
REV:2014-06-12T16:43:04Z
UID:d59c9f0c-27aa-47e3-96e7-43717bbc1d7e
END:VCARD
请注意 CATEGORIES 属性出现在联系人导出中,但没有出现在 CardDAV 请求中。我的猜测是,Contact 应用在导出时会构建 CATEGORIES,但我不确定。
有人知道 iCloud 是如何工作的吗?我是否遗漏了阻止我通过 CardDAV 检索 CATEGORIES 的内容?
【问题讨论】:
-
也许你应该调整标题,vCard 组是不同的。您正在询问类别。我不知道“iContact”,它如何与 iCloud 集成?据推测,它将类别保留在客户端本地,而不是将它们上传到 iCloud 服务器。还是您在谈论 MacOS Contacts.app?请提供更多背景信息。
-
感谢您的评论。我详细说明了上下文和我的要求。你说vCard联系人和vCard组不同,在什么方面?使用 CardDav 处理组的标准方法是什么?