获取 icloud 网络服务端点以获取数据

get icloud web service endpoints to fetch data

我的问题可能看起来很傻,但我在 Google 上搜索了太多之后才问这个问题,但没有任何线索。

我正在使用 iCloud 网络服务。为此,我已将此 Python 代码转换为 PHP。 https://github.com/picklepete/pyicloud

到目前为止,一切正常。当使用 icloud 用户名和密码进行身份验证时,我得到一个 Web 服务列表 URL 作为响应的一部分。现在,例如要使用联系人网络服务,我需要使用联系人网络服务 URL 并向该服务添加一部分 URL 以获取联系人。

https://p45-contactsws.icloud.com:443/co/startup 带有一些参数。

Web 服务 URL https://p45-contactsws.icloud.com:443 is coming in response while authenticating. But the later part, 'co/startup' is there in the python code. I don't know how they found that part. So for some services which is there in Python code, they are working good. But I want to use few other service like https://p45-settingsws.icloud.com:443, https://p45-keyvalueservice.icloud.com:443 等,当我尝试向其他服务发送具有正确参数的请求时,出现 404 未找到或未经授权访问等错误。所以我认为必须添加一些 URL 部分,就像联系人一样。如果有人知道如何或在哪里可以得到正确的 URL 部分,我将非常感激。

提前感谢大家花时间reading/answering我的问题。

恐怕这些 API 端点似乎没有官方来源,因为它们似乎是通过嗅探网络调用而不是 Apple 的适当指南发现的。例如,来自一家取证工具公司的 this presentation 是 2013 年的,涵盖了一些相关端点。请注意 iOS 当时仍处于版本 5 和 6(相对于当前的 v9.3)。

网络上的所有其他代码示例基本上都使用了最初在 2012-2013 年观察到的同一组 API 端点。 (这里是 a snippet from another python module,其中包含您可能会使用的其他 URL。)但是,它们几乎都指向彼此作为来源。

如果您想走一条不同的道路,Apple 现在针对使用 iCloud 数据的已注册应用程序推广 CloudKit and CloudKit JS 解决方案。