2016-05-05 36 views
5

La mia domanda potrebbe sembrare sciocca ma lo chiedo dopo una ricerca eccessiva su Google, ma non ne ho idea.get endpoint del servizio Web icloud per il recupero dei dati

Sto utilizzando i servizi Web iCloud. Per questo ho convertito questo codice Python in PHP. https://github.com/picklepete/pyicloud

Fino a questo, tutto funziona correttamente. Quando si autentica usando il nome utente icloud, password Ricevo un elenco di URL dei servizi Web come parte della risposta. Ora, ad esempio, per utilizzare il servizio web Contatti, ho bisogno di utilizzare l'URL del servizio web di contatto e aggiungere una parte a tale URL per recuperare i contatti.

https://p45-contactsws.icloud.com:443/co/startup con alcuni parametri.

L'URL del servizio Web https://p45-contactsws.icloud.com:443 è in arrivo durante l'autenticazione. Ma la parte successiva, 'co/startup' è lì nel codice Python. Non so come abbiano trovato quella parte. Quindi per alcuni servizi che sono in codice Python, stanno funzionando bene. Ma voglio usare pochi altri servizi come https://p45-settingsws.icloud.com:443, https://p45-keyvalueservice.icloud.com:443 ecc. E quando provo a inviare la richiesta con i parametri corretti a questi altri servizi, ricevo errori come 404 non trovati o accesso non autorizzato. Quindi credo che parte dell'URL debba essere aggiunta a questo proprio come i contatti. Se qualcuno sa come o dove posso ottenere la parte URL corretta, sarò davvero grato.

Grazie a tutti in anticipo per il loro tempo di lettura/risposta alla mia domanda.

risposta

0

Ho paura che non ci sia una fonte ufficiale per questi endpoint API, dal momento che sembrano essere scoperti attraverso lo sniffing delle chiamate di rete piuttosto che una guida corretta di Apple. Ad esempio, this presentation, che proviene da un'azienda di strumenti forensi, è del 2013 e copre alcuni degli endpoint pertinenti. Si noti che iOS era ancora alle versioni 5 & 6 quindi (rispetto alla versione corrente v9.3).

Tutti gli altri esempi di codice sulla rete utilizzano fondamentalmente lo stesso insieme di endpoint API che erano stati originariamente osservati nel 2012-2013. (Ecco lo a snippet from another python module con ulteriori URL che è possibile utilizzare). Tuttavia, tutti loro puntano l'uno sull'altro come origine.

Se desideri seguire un percorso diverso, Apple ora promuove le soluzioni CloudKit and CloudKit JS per le app registrate che funzionano con i dati di iCloud.