Получить конечные точки веб-службы icloud для получения данных

Мой вопрос может показаться глупым, но я спрашиваю об этом после слишком большого поиска в Google, но не имею никакой подсказки.

Я использую веб-сервисы iCloud. Для этого я преобразовал этот код Python в PHP. https://github.com/picklepete/pyicloud

До этого все работает хорошо. При аутентификации с использованием icloud username, password я получаю список URL веб-сервисов как часть ответа. Теперь, например, чтобы использовать веб-службу контактов, мне нужно использовать URL-адрес веб-службы контактов и добавить часть к этому URL-адресу для получения контактов.

https://p45-contactsws.icloud.com/co/startup с некоторыми параметрами.

URL-адрес веб-службы https://p45-contactsws.icloud.com/ приходит в ответ при аутентификации. Но более поздняя часть 'co/startup' есть в коде Python. Я не знаю, как они нашли эту часть. Так что для некоторых сервисов, которые есть в коде Python, они работают хорошо. Но я хочу использовать несколько других сервисов, таких как https://p45-settingsws.icloud.com/, https://p45-keyvalueservice.icloud.com/ и т. Д., И когда я пытаюсь отправить запрос с правильными параметрами этому другие службы, я получаю ошибки, такие как 404 не найден или несанкционированный доступ. Поэтому я считаю, что некоторая часть URL должна быть добавлена ​​к этому так же, как контакты. Если кто-то знает, как и где я могу получить правильную часть URL, я буду очень благодарен.

Заранее всем спасибо за уделенное время чтение / ответ на мой вопрос.

1 ответ

Решение

Я боюсь, что, кажется, нет официального источника для этих конечных точек API, так как они, кажется, обнаруживаются посредством анализа сетевых вызовов, а не надлежащего руководства от Apple. Например, эта презентация, подготовленная компанией, специализирующейся на судебно-медицинской экспертизе, относится к 2013 году и охватывает некоторые из соответствующих конечных точек. Обратите внимание, что iOS все еще была в версиях 5 и 6 (по сравнению с текущей версией 9.3).

Все остальные примеры кода в сети в основном используют тот же набор конечных точек API, который первоначально наблюдался в 2012-2013 годах. (Вот фрагмент из другого модуля Python с дополнительными URL-адресами, которые вы можете использовать.) Однако все они в значительной степени указывают друг на друга как на источник.

Если вы хотите пойти по другому пути, Apple теперь продвигает решения CloudKit и CloudKit JS для зарегистрированных приложений, работающих с данными iCloud.

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