我想知道在iOS上是否有用于修改CalDAV和CardDAV帐户的API.我正在开发一个应用程序,我希望用户可以简单地启用和禁用日历/联系人同步,而无需在iOS设置中手动设置.我知道我可以使用自己的CalDAV/CardDav实现并使用EventKit /地址簿api进行同步,但我想避免这种实现,因为它比使用默认的CalDav/CardDAV要困难得多且容易出错. iOS的实现.
非常感谢您的答案.
我一直在尝试接收与我的Apple Id相关的iCloud联系人,但由于某种原因它不起作用.我收到了一个(404)Not Found错误.
我知道iCloud使用CardDAV,您需要一个特定的URL地址才能访问您的联系人.
对于CardDAV客户端,我使用了以下内容:https://github.com/Metric/CardDavNet 对于服务器地址,我尝试了多个url(当然MYUSERID是我的真实用户ID):
https://p02-caldav.icloud.com/MYUSERID/carddavhome/card/ https://p02-contacts.icloud.com/MYUSERID/carddavhome/card/
我究竟做错了什么?我使用正确的服务器URL还是有其他错误?我希望有人能引导我走向正确的方向.
我们将用户电子邮件地址、电话、物理地址和其他信息存储在我们公司的 Windows Active Directory 中。Active Directory 用户需要从所有类型的电子邮件客户端(例如 Mozilla Thunderbird、Outlook、iOS 联系人、MacOS X、Android 地址簿等)访问此信息,无论是从公司网络还是外部(如果是)互联网。我们不使用 Microsoft Exchange 服务器。
我发现这可以通过 LDAP 和 CardDAV(通过安装的内部应用程序)来完成。
访问各种电子邮件和移动客户端中的联系人 LDAP 或 CardDAV 哪一种更好?
到现在为止,我Google Calender
每天wget
都使用public ".ics"
Link进行个人备份.
现在我想切换到只有caldav
访问权限的新服务.
有没有下载我的所有的可能性caldav
和carddav
数据与一个wget
/ curl
?
这个下载的数据应该让我有可能备份丢失的数据.
提前致谢.
编辑
我创建了一个非常简单的php文件,其工作方式是hmh解释的.不知道这种方式是否适用于不同的提供商,但对于mailbox.org,它运作良好.
你可以在这里找到它https://gist.github.com/ahemwe/a2eaae4d56ac85969cf2.
我目前正试图通过CardDav协议操纵我在iCloud中的联系人列表组.为此,我在Contact.app中创建了一个包含联系人的组: 截图
当我直接从联系人应用程序导出我的联系人的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
Run Code Online (Sandbox Code Playgroud)
但是,当我请求我的iCloud服务器检索此联系人时,我没有设置CATEGORIES属性,但我检索了两个vCards,一个用于联系人,一个用于组.组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/
Run Code Online (Sandbox Code Playgroud)
联系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
Run Code Online (Sandbox Code Playgroud)
group 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
Run Code Online (Sandbox Code Playgroud)
请注意CATEGORIES属性出现在联系人导出中但不出现在CardDAV请求中.我的猜测是,Contact应用程序会在导出时构建CATEGORIES,但我不确定. …
我想问一个关于服务器数据的问题.我是服务器编程的新手,但我必须了解CardDav服务器(CardDav是由WebDav开发的).
我只知道CardDav服务器用于保存地址簿数据,但服务器实际拥有哪种形式的数据(例如.CSV或.txt)?谁能帮我?非常感谢你.
我正在尝试通过 Google 的 CardDAV API 从 Google 通讯录中检索所有联系人。
根据CardDAV 开发人员指南,这应该通过发送addressbook-multiget REPORT
. 其中,根据RFC 6352,应该是这样的:
Run Code Online (Sandbox Code Playgroud)REPORT https://www.googleapis.com/carddav/v1/principals/foo@gmail.com/lists/default HTTP/1.1 Authorization: Bearer ya29.foo-bar Depth: 1 Content-Type: text/xml; charset=UTF-8 Host: www.googleapis.com Content-Length: 204 <C:addressbook-multiget xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:carddav"> <D:prop> <D:getetag /> <C:address-data> <C:prop name="EMAIL"/> </C:address-data> </D:prop> </C:addressbook-multiget>
不幸的是,我不断收到(400) Bad Request
所有REPORT
请求。
我确实在请求中包含了带有 OAuth2 访问令牌的 Authorization 标头和设置为 1 的 Depth 标头,并且我https://www.googleapis.com/carddav/v1/principals/foo@gmail.com/lists/default
通过 HTTPS将其发送到。而且我确实可以访问 Developer Console 中授予的 CardDAV API。
有没有人让这个工作和/或有什么我应该做的不同的线索?