Thunderbird не обновляет контакт carddav с помощью собственного сабельного бэкенда - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь написать свой собственный сабер dav carddav backend.На данный момент я в основном написал 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.

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

...