为什么谷歌CardDAV不是服务器

fruux,我们决定实现同步与谷歌接触前一段时间,允许人们做fruux和谷歌之间的双向同步联系人的地址簿。

获得同事和领导的高奖赏和一致的执行CardDAV支持前一段时间和我很熟,协议,我认为这是可行的。

我错了。

我写这篇博文一般警告使用谷歌的CardDAV服务器,几乎任何东西。 这是一个巨大的错误,直到他们解决巨大的错误解释的协议,你最好使用其专有的联系人API。

数据丢失

让最明显的问题,数据的损失。 CardDAV中使用的主数据格式电子名片,特别是3.0版。

有些东西,你可以期望当你使用与CardDAV电子名片。 特别是,如果你将一些信息添加到您的名片,并将其发送到服务器,一个PUT信息的请求,你还指望GET

谷歌CardDAV服务器默默地抹去所有类型的数据并不关心。 两个非常重要的东西,如属性,但也等其他相关元数据参数和组织影响如何解释一个名片。

对终端用户的影响是,用户可以创建电子名片并添加一大堆信息接触,被丢弃的谷歌,和第二同步,也会从用户本地版本中删除。

拒绝有效的电子名片和错误处理

我们已经发送成千上万的有效电子名片谷歌CardDAV服务器。 服务器拒绝了高达15%的所有的电子名片我们发送它。 注意,这些都不是我们生产电子名片。 我们从其他CardDAV客户接收他们,因为我们让数以百万计的他们,这是统计一个像样的来源在什么样的电子名片出现在野外。

最大的问题我们在用这个,是,我们没有得到任何反馈。

不,这不是400 Bad Request我们回来了,我们没有收到任何TCP包回来,。 任何(有效)名片CardDAV服务器不理解,会导致我们的HTTP请求超时。

没有明确的模式和不支持他们做什么。 我们注意到几乎每一个附件名片是拒绝,删除附件之后,事情会开始工作…… 但是也有大量的卡片,拒绝某些谷歌账户,但是在其他账户正常工作。

缓慢

几乎任何写操作你在谷歌的CardDAV服务器将需要10 - 20秒才能完成。 这可能看起来不是一个大问题,但我们的许多用户有超过2000个联系人的地址簿。

鉴于我们的HTTP请求超时1分钟之后,我们重试HTTP请求2次失败,失败和15%的请求超时,这意味着对于2000联系人的地址簿,这将需要超过22小时才能完成。

UID和url

与CardDAV系统同步时,尤其是在丢弃数据时的感觉,你需要保持某种参考名片你发送,所以你可以保持当地重要的数据。

CardDAV提供了两个独特而稳定的id标识符。

谷歌的CardDAV服务器丢弃,取代自己。 从任何CardDAV客户机的角度来看,Google使它看起来像一个新的联系发送。 联系删除在服务器上,将出现一个新的联系在服务器上的相似,但不完全(参见数据丢失)。

非常简单的客户可能就足够了,但即使是例如苹果OS X上的联系人应用程序,它使用ID来集团联系在一起,失去这种关系一旦卡片发送给谷歌。

缺乏documentatation

官方的文档为服务器方便就指的是开放标准,但由于谷歌的系统无法进一步从CardDAV-compliant服务器,几乎没有信息他们为什么做他们做的事情。

例如,如果他们只选择支持极其有限子集的电子名片,忽视许多常用功能,这将是伟大的如果是记录。

响应

通常情况下,当遇到这样的错误,我很宽容。 我写了一个相当受欢迎的服务器我自己,我知道标准是非常困难的,所以不容易写好行为服务器从头开始。

所以我做的第一件事是去联系相关的开发人员。

的尊重和隐私我会保留他们的回应,但我遇到了不感兴趣,一种得到的印象我超越界限,甚至暗示,可能有一个或两个系统的错误。

这是2013年8月,什么都没有改变。

总之

事实上,谷歌广告他们的服务器支持CardDAV是一种侮辱人并尽量标准兼容。

谷歌CardDAV我们称之为CardDAV服务器有相似之处。 非常简单,控制的东西,它可能会假装。

任何先进,不惜一切代价避免它。 我犯了一个错误,试图解决各种问题,在现实生活中,时间可能是更好的将我们的代码移植到Google Contacts API。 简单得多,但它的可预见的和理智的行为。

如果你是一个CardDAV客户端开发人员和你想与谷歌同步,记住以下:

  1. 谷歌仅支持一个很小的子集的电子名片,默默地丢弃或损坏任何你的用户的数据,它不支持。
  2. 大约15%的正常电子名片会被谷歌没有告诉你为什么。 他们的系统只会暂停你的http请求。
  3. 非常慢,可以为移动客户,当你不得不处理问题对于许多用户同步。
  4. 你需要添加额外的启发式联系人维护引用完整性。

此外,如果您正在编写一个实际的电子名片同步谷歌服务,目标,我认为只有理智的实现这个的方法是:

  1. 维护一个额外的数据库,因为谷歌不能被信任。
  2. 发送电子名片后,也立即检索找出谷歌支离破碎。
  3. 改变后Google contacts一方面,检索更新后的电子名片,与你收到的最后一个版本进行比较,并应用的差异正确的电子名片的副本。

的另一个问题是,很难过程语义更新的电子名片。 名片可能有属性PID唯一地标识属性参数,所以你知道已经更新,但这是一个电子名片4特性,即使你指定它,谷歌就抛弃它。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值