Thunderbird не обновляет контакт carddav с помощью собственного сабельного бэкенда

Я пытаюсь написать собственный бэкэнд для Sabre Dav CardDav. На данный момент я в основном написал vcard в исходный код, чтобы опробовать его. Поэтому я расширил класс AbstractBackend в Sabre \ CardDAV \ Backend и переписал некоторые функции.

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];
}

Теперь я могу получить адресную книгу с Thunderbird и увидеть контакты на вкладке CardBook. Затем я меняю имя визитки. Например Лютер Фу. Я также обновляю последний измененный номер до 102.
Теперь я нажимаю кнопку синхронизации в Thunderbird и ожидаю обновленный контакт с новым именем. Вместо этого теперь у меня есть два контакта. Один с новым и один с новым именем.

Я думаю, что неправильно понимаю некоторые части системы cardDAV.

Кто-нибудь может мне помочь

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …