问题标签 [carddav]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1699 浏览

caldav - 实施 Card- 和 CalDAV 客户端

我被要求开发一个可以与我公司的 Card-/CalDAV-Server (Kerio Connect) 通信的 Web 应用程序。在过去的几个小时里,我一直在试图找到一个合适的库,但似乎没有一个可以正常工作且仍在维护的库。Milton 看起来很棒,但它是用 JAVA 编写的,我和我的同事都没有使用过。

相反,我可能不得不自己编写一些东西,最好是用 PHP 或 JavaScript。我的问题是;如何?我真的很喜欢整个东西是如何基于 http 的,但是除了 RFC 之外,几乎找不到文档。虽然我确实设法让我的一些 curl 请求得到了答复,但其他人在我不明白为什么的情况下失败了:

这行得通。我收到包含“公共文件夹(domain.tld)”的响应,这就是我所要求的。

另一方面,这个返回 403 - Forbidden。

这两个请求在某种程度上可能都是错误的——它们只是我设法拼凑起来的。

那么我该如何处理呢?从上到下阅读 RFC 会更好吗?到目前为止,他们还没有那么有帮助。

编辑

我已经阅读了 sabre.io 上的两篇文章。他们确实在一定程度上帮助了我。但是,我仍然无法获得实际的联系数据。我已经设法获得了一个包含我们共享地址簿的 UUID 的摘要,但是如何使用这些 UUID,我不知道。

此外,这两篇文章都没有详细说明事情应该如何工作。例如,首先 CardDAV 相关的文章指出ctag 必须为后续请求存储,然后,仅在几行之后,它提到服务器可能根本不支持它。再往下,我了解到 ctag 应该是一个标签,它可以让我知道服务器上是否发生了某些变化;这就是 ctag 的目的。每次地址簿中的任何内容发生更改时,ctag 也必须更改。那么......,当我的服务器不支持它时会发生什么?我怎么知道它是否有效?请求它只会产生 403 - 禁止。

这是我正在使用的请求;

为了获得我们公共地址簿的上述摘要,我使用了;

0 投票
0 回答
653 浏览

sql-server-2008 - 使用 CardDAV 实现联系人同步服务器的标准方法是什么

我希望设置一个 CardDAV 服务器,它将使用标准协议将我的联系人从数据库同步到客户端设备。

我目前使用 ASP.net for web 和 MSSQL 2008 作为后端,现在我想开发一个访问点,用户可以直接添加服务器 url 和身份验证详细信息以同步联系人。

我正在寻找适合我当前设置的 CardDAV 服务器。请帮我找到标准解决方案,当前所有 CardDAV 服务器都在 PHP 和 MySQL 中。

0 投票
1 回答
1321 浏览

bash - CalDAV/CardDAV Radicale 备份

现在我在自己的 Linux 服务器上运行 Radicale(用于管理日历和联系人),我正在尝试弄清楚如何通过 bash 脚本(然后我可以 cron 或手动启动)备份通讯录。

多亏了 Duplicity,导出部分不会那么困难。

但是……地址簿在哪里?在我的系统上任何地方都没有与 Radicale 相关的 *.vcf。

0 投票
2 回答
1077 浏览

http - 适用于 Windows/Linux/OSX/Android 的 CalDAV 客户端

是否有人知道任何适用于 Windows/Linux/OSX/Android 的 CalDAV 客户端实现 RFC4791 中定义的 MKCALENDAR 请求和报告(CALDAV:calendar-query、CALDAV:free-busy-query 等)?

我测试了一些客户端,但它们使用 CalDAV 服务器作为简单的 WebDAV 存储,并且不允许执行高级请求。

0 投票
1 回答
737 浏览

google-api - Google 的 Contacts API 和 CardDav API 有什么区别?

我知道它们的实现方式不同,但是在功能方面有什么区别?

0 投票
2 回答
1518 浏览

caldav - 崇光 CardDav 支持

我正在尝试使用 CardDav 从崇光组件系统中检索联系人列表(.vcf 格式)。我已成功将我的代码与其他系统一起使用,但 Sogo 并没有按我的预期工作。我将 URL 设置为:

用户 ID 和密码提供给 libcurl。该命令是带有以下 xml 的 REPORT:

对于其他系统,此查询将生成一个包含多个 vcard 条目的文件,这正是我想要的。使用崇光,我得到的只是:

我注意到对上述 URL 的 PROPFIND 命令会给我一个非常大的文件,其中包含多个 URL,每个联系人条目一个。这些确实有效,但是必须执行可能数千个 GET 来逐一检索它们会慢得多。有人知道我的地址簿查询出了什么问题吗?

相关问题:我想对日历做基本相同的事情(xml 输入略有不同)并且有同样的问题。但是有一个解决方法,我可以对这个 URL 执行 GET:

我得到了我想要的整个 .ics 文件。但是,似乎没有可用于联系人的等效 URL - 我错了吗?

0 投票
1 回答
225 浏览

webdav - CardDAV 中的隐形联系人

问题

如何访问 CommuniGate Pro 服务器上的所有联系人?

语境

我需要从Communigate Pro服务器上存储的 70 个电子邮件帐户迁移联系人。由于 CommuniGate支持 CardDAV,我决定使用此协议,而不是从他们的 Web 客户端Pronto手动导出联系人。

我设法访问 CardDAV 文件夹并提取其中包含的 vCard。但是,问题在于并非所有联系人都显示在 CardDAV 中。特别是,Web 客户端包含在 CardDAV 中不可见的联系人子组。

当我从 Web 客户端导出这些子组时,它们会以名为vCardGrouptxt的专有格式作为文件输出。即使我写了一个 PHP 脚本来将 vCardGroup 转换为 vCard,使用这种方法仍然很慢。

如果您提出一种以编程方式提取这些联系人子组的方法,我将不胜感激。我知道 CardDAV 不支持子组,所以我想最大的问题是:这些txt文件存储在哪里?

作为参考,请在此处PROPFIND找到CardDAV 文件夹根目录的请求结果。请注意,CommuniGate 似乎通过http://calendarserver.org实现 CardDAV 。

感谢您的关注!

0 投票
0 回答
130 浏览

lxml - Python 2.6:同时使用 caldav 和 carddav 库 -> lxml ImportError

我想创建一个对 Baikal CalDav/CardDav 服务器的非常简单的访问,以读取地址簿和日历条目。无需更新,只读!整个过程必须使用 Python 2.6 (Win32) - 而不是 2.7 或 3.x。

我找到了这些包:

卡尔达夫:https ://pypi.python.org/pypi/caldav/0.4.0

CardDav:https ://github.com/ljanyst/carddav-util

好吧,他们有一些我安装的依赖项,他们都使用 lxml。所以我安装了这个:

https://pypi.python.org/pypi/lxml/3.6.0

但是现在使用两个库(carddav,caldav)运行一个简单的程序,我遇到以下错误:

所以看起来虽然 lib lxml 是最新版本,但它不适用于 carddav.py!

我尝试了旧版本的 lxml - 例如 2.2.4 - 然后它似乎工作?!

发生了什么变化,我该如何解决这个问题?我真的很想使用 lxml 3.60!

请注意,Python26 和所有库都是 Win32。

谢谢!

0 投票
0 回答
373 浏览

python - 使用 Python 将联系人保存到 CardDAV 地址簿

我想将一些联系人保存到在 OwnCloud 服务器上运行的 CardDAV 通讯录中。有没有一种简单的方法可以用 python 做到这一点?

我已经尝试过 python-pycarddav 但很难开始,因为我找不到使用 Python 的手册或示例。他们还写道:“pycarddav 已弃用 - 使用 vdirsyncer 和 khard”

0 投票
1 回答
371 浏览

python - 将带有联系人的 MySQL 数据库导出到兼容的 CardDav 系统

我有一个标准的 MySQL 数据库,其中包含一个包含联系人的表(我正在使用 Zend 框架的 webapp 将联系人添加到表中),因此具有我自己的字段。

是否可以创建一个与 OsX 的地址簿系统兼容的服务器?我想我必须兼容 CardDav 系统。

有人已经这样做了吗?如果是,您是如何处理的?创建自己的服务器?例如,是否有适用于 Python 的 CardDav 库?我只想能够使用 OsX 的通讯录读取我的联系人。

非常感谢你的回答,

最好的,