2013-06-14 8 views
5

Я пытался получить контакты iCloud, связанные с моим идентификатором Apple, но по какой-то причине он не работает. Я получаю ошибку (404) Not Found.Импорт контактов iCloud .NET (CardDAV)

Я знаю, что iCloud использует CardDAV и вам нужен определенный URL-адрес для доступа к вашим контактам.

Для клиента CardDAV я использовал следующее: https://github.com/Metric/CardDavNet Для адреса сервера я попытался множественная URL, (конечно MYUSERID мой реальный идентификатор пользователя):

https://p02-caldav.icloud.com/MYUSERID/carddavhome/card/ https://p02-contacts.icloud.com/MYUSERID/carddavhome/card/

Что я делаю неправильно? Я использую правильный URL-адрес сервера или что-то еще неправильно? Надеюсь, кто-то может вести меня в правильном направлении.

+0

Я так новичок в iCloud, так что я не могу получить то, что есть «MYUSERID»? это Appie ID? – kairen

ответ

1

Второй URL-адрес, который вы упоминаете, выглядит как-то ОК. Но чтобы надежно получить URL-адрес, на котором размещена ваша адресная книга, вам необходимо запросить свойство адресной книги-home-set основной записи вашей учетной записи.

Как:

PROPFIND Depth:0 /12345/principal/ 
<propfind xmlns="DAV:"> 
    <prop> 
    <addressbook-home-set xmlns="urn:ietf:params:xml:ns:carddav"/> 
    </prop> 
</propfind> 

и найти принципала, то запрос для 'основной-URL' собственности, например, на /, с вашим набором Идента:

PROPFIND Depth:0/
<propfind xmlns="DAV:"> 
    <prop><principal-URL/></prop> 
</propfind> 

Вы также можете использовать отладочный прокси-сервер, как Чарльз или Скрипач, чтобы выяснить, что ваши рамки .NET на самом деле отправки на сервер.

+0

Спасибо за помощь! Образец кода, который вы предоставили, - это вызов SOAP? Почему используется XML? – Mittchel

+1

Это вызов WebDAV, а WebDAV использует XML для всех операций метаданных. Googling Я нашел это, похоже, в порядке: http://www.cs.unibo.it/~fabio/webdav/WebDAV.pdf – hnh

+0

Удивительный! Большое спасибо – Mittchel

Смежные вопросы