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

Я пытаюсь написать собственный бэкэнд для Sabre Dav CardDav. На данный момент я в основном написал v card в исходный код, чтобы опробовать его. Поэтому я расширил класс 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 ответов

Другие вопросы по тегам