我正在将Google CardDAV与我的webApplication集成起来。有时候,当我推出一个新的vCard时,我会遇到一个奇怪的问题。
如果vCard包含一个UID,并且UID是一个GUID,那么谷歌将用一个16字符UID来更改vCard UID。
例如:这是我最初的vCard
开始:VCARD 版本:3.0 N:捏;大卫; FN:大卫·夹点 主持人:2013-01-09 T09:26:34Z UID:6c34bedcf256408780d8ffe269ec2b3b 完:VCARD
所以我把它放到Google CardDAV中,放到当前的url中:
https://www.google.com/m8/carddav/principals/__uids__/myusername@gmail.com/lists/default/6c34bedcf256408780d8ffe269ec2b3b
结果是可以的,并且这个联系人是在Google联系人上创建的。
但是:
如果“现在”,我从相同的vCard中检索当前的URL,我有以下响应。
开始:VCARD 版本:3.0 N:捏;大卫; FN:大卫·夹点 委员:2013-01-09 T09:44:25 Z UID:716212e795884e43 完:VCARD
您可以看到,UID已经更改并从原来的
UID:6c34bedcf 256408780d8ffe269ec2b3b
至
UID:716212e795884e43
奇怪的是,如果我用以下请求检索卡片
https://www.google.com/m8/carddav/principals/__uids__/myusername@gmail.com/lists/default/716212e795884e43
我有完全相同的响应,就像vCard引用两个不同的路径url一样。
但是,当我从CardDAV检索联系人列表时,将返回第二个URL。
如果我没有用GUID创建vCard,但使用16字符UID,似乎谷歌接受这一点,但有时它改变了,所以我不能确定卡的唯一性。
解决方法似乎是在每次提交后重新下载vCard,但这会导致一个重要的负载,我想要避免。
我对iCloud CardDAV使用了相同的过程,但这种情况并没有发生。
有人能帮我吗?
发布于 2018-03-26 18:24:41
当您将一个vCard放到Google CardDAV上时,它将重新创建一个新的vCard V3.0并释放发布的原始数据,包括数据丢失和您描述的UID / URI路径更改。
除了UID之外,Google CardDAV还有其他问题
在2018年看到这些失败之后,我的建议是:更好的做法是使用谷歌的联系人API,而不是在那里使用CardDAV实现。
https://stackoverflow.com/questions/14232604
复制相似问题