我尝试编写自己的saber dav carddav后端。目前,我基本上是在源代码中写了一个vcard进行尝试。因此,我扩展了Sabre \ CardDAV \ Backend的AbstractBackend类,并重写了一些功能。
function getCards($addressbookId)
{
$vcard = new VCard(
[
'FN' => "Max",
'N' => ["Max",
"Luther"],
"NICKNAME" => "nick",
]
);
$data = $vcard->serialize();
return [["carddata" => $data,"uri"=> "nick","lastmodified"=> 101]];
}
还有
function getCard($addressBookId, $cardUri)
{
$vcard = new VCard(
[
'FN' => "Max",
'N' => ["Max",
"Luther"],
"NICKNAME" => "nick",
]
);
$data = $vcard->serialize();
return ["carddata" => $data,"uri"=> "nick","lastmodified"=> 101];
}
我现在可以用雷鸟来获取地址簿,并在CardBook选项卡上查看联系人。然后,我更改vcard的名称。例如,路德对foo。我还将最后修改的号码更新为102。 现在,我按下了雷鸟中的“同步”按钮,并期望使用新名称更新联系人。相反,现在我有两个联系人。一个带有onld,另一个带有新名称。
我认为我误解了cardDAV系统的某些部分。
有人可以帮我吗