CardDAV 备份、同步、共享联系人

原文链接

群晖 DSM 系统提供了 CardDAV Server 套件,使用 CardDAV 协议实现通讯录的同步功能。

CardDAV 协议

关于 CardDAV 的知识,可以查看 Wiki 文档,此处做个简短描述:

vCard Extensions to WebDAV (CardDAV) 是一个基于“客户端/服务器”形式的通讯录协议,允许用户存取和分享服务器上的联系人信息。

CardDAV 协议由 IETF 机构研发,在2011年9月作为 RFC 6352 发布出来。CardDAV 基于 WebDAVWebDAV 基于 HTTP,使用 vCard 数据格式来传输联系人信息。

WebDAV:

Web Distributed Authoring and Versioning (WebDAV) 是 HTTP 协议的一种扩展,允许客户端进行远端 Web 内容授权操作。

安装 CardDAV Server 套件

在套件中心搜索“CardDAV”即可找到 CardDAV Server 套件,点击“安装套件”按钮,开始安装。

套件安装结束之后会自动启动服务。

CardDAV Server 配置

打开 CardDAV 套件,可以看到如下可配置项:

image

推荐尽量配置成如上图所示的形式。

而“通讯簿”下面就是当前 DSM 系统中每个用户的通讯录了:

image

我这边系统就有上图所示的4个用户,双击特定用户,可以进入该用户的通讯簿管理界面:

image

很常规的操作,此处不赘述。

接下来就需要配置一下端口转发了,打开“控制面板->外部访问->路由器配置”,点击新增按钮,弹出如下对话框:

image

选择“内置应用程序”,点击下一步,选择两个 CardDAV Server 条目:

image

点击“应用”按钮,回到“路由器配置”界面,然后点击“保存”按钮,将刚才的改动写入到路由器端口转发规则中去。

iOS 系统配置

服务器配置好之后,就开始配置客户端了,本文的客户端以 iOS 系统为例讲述。

进入 iOS 的“设置->账户与密码”界面:

image

点击“添加账户”:

image

选择“其他”:

image

选择“添加 CardDAV 账户”:

image

假设我们的群晖主机能通过域名 test.synology.me 访问,那么上图中的服务器栏填写:

https://test.synology.me:8008

用户名和密码填写你在 DSM 中注册的账号就行了。

填好之后点击右上角的“下一步”,iOS 就会自动检测 CardDAV 服务了,中途可能会弹出一个框:

image

直接点击“继续”就行了。

配置好之后,就可以在“设置->账户与密码”界面看到刚才添加的账户了。

为了测试上述内容是否配置成功,可以在 DSM 中打开 CardDAV Server 套件,在刚才所添加账号对应的用户下,新建一个联系人,然后在 iOS 通讯录中查看是否同步过来刚刚添加的联系人。

备份 iOS 中已有的联系人

实际上,上述配置只是会让 CardDAV Server 账户中的联系人同步到 iOS 中,并不会将已有的联系人备份到 CardDAV Server 服务中去。

在 iOS 通讯录中,每个 CardDAV 账户都会被映射到一个特定的分组(言下之意也就是说通讯录中还有其他很多种分组)。默认情况下,通讯录是会显示所有分组的联系人,可以设置要显示哪些分组的联系人。其实此处我们预期达到的目标是,将除 CardDAV 账户之外的所有联系人都导入到 CardDAV Server 里去,这样就能使用 CardDAV 协议管理所有联系人了。

先将所有联系人同步到 iCloud 中,然后从浏览器进入 https://www.icloud.com/#contacts,可以看到同步到 iCloud 的所有联系人,点击左下角的“设置”图标,选择“导出 vCard...”:

image

会下载一个 **.vcf 到本地磁盘。

从浏览器进入 DSM 系统,打开 CardDAV Server 套件,进入特定账号的通讯簿管理界面,点击“导入”按钮:

image

选中刚刚导出的 **.vcf 文件,即可将所有联系人导入 CardDAV 服务。

至此,完美实现通讯录同步流程,后续在 iOS 中新添加的联系人也会自动同步至 CardDAV 服务。