Apple iCloud-Dienst
Die API unterstützt das Abrufen einer Vielzahl von Daten und Dateien von den iCloud-Diensten von Apple. Dies umfasst den Zugriff auf Geräte-iCloud-Sicherungsdaten, Find My iPhone-Daten und eine Reihe von zeitnahen CloudKit-Datenquellen.
Sitzungen
Das Einrichten einer Sitzung für die iCloud-Dienste auf der API ist so einfach wie das Anmelden bei einem iCloud-Konto. Der Vorgang kann mehrere Versuche zum Erstellen der Sitzung erfordern, wenn das Konto die Multifaktorauthentifizierung wie 2FA oder 2SV aktiviert hat.
Der erste Aufruf zum Erstellen einer Sitzung sieht wie folgt aus.
curl https://ricloud-api.reincubate.com/sessions \ -X POST \ -H 'Authorization: Token <your key_token>' \ -H 'Content-Type: application/json' \ -d '{ "source": { "user": "1", "type": "icloud.account", "identifier": "<iCloud account username>" }, "payload": { "password": "<iCloud account password>" } }'
Für nicht 2FA / nicht 2SV-fähige Konten reicht dies aus, um eine aktive Sitzung einzurichten, sofern die angegebenen Anmeldeinformationen gültig sind.
Ein Konto mit aktiviertem 2FA erhält jedoch eine Antwort auf einen code-required
Fehler code-required
ist, und der 2FA-Prozess wird auf Geräten ausgelöst, die mit dem Konto verknüpft sind und die einen 2FA-Code senden. Dieser Code muss der API beim nächsten Aufruf zur Sitzungserstellung bereitgestellt werden.
curl https://ricloud-api.reincubate.com/sessions \ -X POST \ -H 'Authorization: Token <your key_token>' \ -H 'Content-Type: application/json' \ -d '{ "source": { "user": "1", "type": "icloud.account", "identifier": "<iCloud account username>" }, "payload": { "password": "<iCloud account password>", "code": "<fresh 2FA code>" } }'
Schließlich erhält ein Konto mit aktiviertem 2SV eine vom Benutzer choice-required
Fehlerantwort sowie eine Liste möglicher Geräte, die mit dem Konto verknüpft sind und ausgelöst werden können, um den 2SV-Vorgang abzuschließen.
curl https://ricloud-api.reincubate.com/sessions \ -X POST \ -H 'Authorization: Token <your key_token>' \ -H 'Content-Type: application/json' \ -d '{ "source": { "user": "1", "type": "icloud.account", "identifier": "<iCloud account username>" }, "payload": { "password": "<iCloud account password>", "choice": "<choice identifier from choices fields of `choice-required` error>" } }'
Dieser Aufruf löst einen Code aus, der an das ausgewählte Gerät gesendet wird. Dieser Code kann dann wie in der Payload verwendet werden, um den Sitzungsinitialisierungsprozess abzuschließen.
Die von der Nutzlast für die Sitzungserstellung akzeptierten Parameter sind in der folgenden Tabelle zusammengefasst.
Name | Art | Beschreibung |
---|---|---|
Passwort | Zeichenfolge | Das Kennwort des iCloud-Kontos. |
Code | optional, Zeichenfolge | Wenn für das iCloud-Konto ein Multi-Faktor (wie 2FA) aktiviert ist, ist dieser Parameter erforderlich. |
Wahl | optional, Zeichenfolge | Wenn für das iCloud-Konto 2SV aktiviert ist, wird dieser Parameter während des Erstellungsvorgangs der Sitzung benötigt. |
Quelltypen
Kennung | Beschreibung |
---|---|
icloud.account | Primärquelle Entspricht einem iCloud-Konto. |
icloud.backup | Die iCloud-Sicherung eines iOS-Geräts. |
Umfragen
Der iCloud-Dienst unterstützt alle Attribute des Poll-Payload-Schemas.
Quelleninformationen werden abgerufen
Dieser Abfragetyp ruft Informationen zur Zielquelle ab. Die Ergebnisse werden im JSON-Format veröffentlicht.
Beispielsweise icloud.account
Informationen zu einer icloud.account
Quelle icloud.account
, die Liste der iCloud-Sicherungen ( icloud.backup
Quellen) und andere Metainformationen zurück.
CURL verwenden
curl https://ricloud-api.reincubate.com/polls \ -X POST \ -H 'Authorization: Token <your key_token>' \ -H 'Content-Type: application/json' \ -d '{ "session": "<session ID>", "payload": { "info_types": ["*"] } }'
Verwendung von * ricloud-py *
import ricloud # The ID of a session we made earlier. session_id = "<session ID>" poll = ricloud.Poll.create( session=session_id, payload={ "info_types": ["*"] } )
Daten abrufen
Dieser Abfragetyp ruft Daten aus der Zielsitzung ab und verarbeitet sie. Die Ergebnisse werden im JSON-Format veröffentlicht.
Weitere Informationen zu bestimmten Datentypen finden Sie in der Liste der verfügbaren Datentypen .
CURL verwenden
curl https://ricloud-api.reincubate.com/polls \ -X POST \ -H 'Authorization: Token <your key_token>' \ -H 'Content-Type: application/json' \ -d '{ "session": "<session ID>", "payload": { "data_types": ["icpl.photos"] } }'
Verwendung von * ricloud-py *
import ricloud # The ID of a session we made earlier. session_id = "<session ID>" poll_payload = { "data_types": ["icpl.photos"] } poll = ricloud.Poll.create( session=session_id, payload=poll_payload, )
Dateien werden abgerufen
Das Attribut files
poll payload gibt das Abrufen von Binärdateien aus einer Sicherung an. Die IDs werden normalerweise aus einer vorherigen Umfrage für Datentypen abgerufen, die direkte Dateiverweise wie Fotos oder Anhänge wie Nachrichtendatentypen enthalten.
CURL verwenden
curl https://ricloud-api.reincubate.com/polls \ -X POST \ -H 'Authorization: Token <your key_token>' \ -H 'Content-Type: application/json' \ -d '{ "session": "<session ID>", "payload": { "files": [ "icpl://01a266abcd6c1a74056891b9c7ed9016b0c319ecabc1e7d658896f59c305768f71961fef92091cfed21f", "icpl://0167ba732e5f53e20efd7b0a1d859abcdd97e698af01afc3ab2f1d65880f7abcce0bfb89142ee770fac5" ] } }'
Verwendung von * ricloud-py *
import ricloud # The ID of a session we made earlier. session_id = "<session ID>" poll_payload = { 'files': [ 'icpl://01a26621ad6c1a74056891b9c7ed9016b0c319ec0d01e7d658896f59c305768f71961fef92091cfed21f', 'icpl://0167ba732e5f53e20efd7b0a1d8593b0dd97e698af01afc3ab2f1d65880f713dce0bfb89142ee770fac5', ] } poll = ricloud.Poll.create( session=session_id, payload=poll_payload, )
Datentypen
iCloud-Datentypen
Kennung | Beschreibung |
---|---|
icpl.photos | Ruft iCloud Photo Library-Dateien ab. |
mme_contacts.contacts | Ruft in iCloud gespeicherte iOS-Kontaktdaten ab. |
mme_calendar.events | Ruft in iCloud gespeicherte iOS-Kalenderdaten ab. |
mme_notes.notes | Ruft in iCloud gespeicherte iOS Notes-Daten ab. |
callkit.calls | Ruft mit CallKit synchronisierte iOS-Telefondaten ab. |
cloudkit_safari.history | Rufen Sie in iCloud gespeicherte Safari-Browserverlaufsdaten ab. |
fmip.locations | Abrufen von Positionsdaten für "Mein iPhone suchen". |
iCloud Backup App-Datentypen
Kennung | Beschreibung |
---|---|
ios_messages.messages | Ruft iOS-Nachrichtendaten ab, einschließlich iMessage und SMS. |
ios_contacts.contacts | Ruft iOS-Kontaktdaten ab. |
ios_phone.calls | Ruft iOS-Telefondaten ab. |
ios_calendar.events | Ruft iOS-Kalenderdaten ab. |
ios_notes.notes | Ruft iOS Notes-Daten ab. |
ios_health.data | Ruft iOS-Gesundheitsdaten ab. |
ios_safari.history | Ruft die Verlaufsdaten des Safari-Browsers ab. |
ios_safari.cookies | Ruft Safari-Cookie-Daten ab. |
whatsapp.messages | Ruft WhatsApp-Nachrichten ab. |
whatsapp.calls | Ruft den WhatsApp-Anrufverlauf ab. |
viber.messages | Ruft Viber-Nachrichten ab. |
viber.calls | Ruft den Viber-Anrufverlauf ab. |
viber.conversations | Ruft Viber-Gespräche ab. |
viber.contacts | Ruft Viber-Kontakte ab. |
kik.messages | Ruft Kik-Nachrichten ab. |
kik.contacts | Ruft Kik-Kontakte ab. |
hike.messages | Ruft Hike-Nachrichten ab. |
hike.posts | Ruft Wanderbeiträge ab. |
wechat.messages | Ruft WeChat-Nachrichten ab. |
tinder.messages | Ruft Tinder-Nachrichten ab. |
line.messages | Ruft Leitungsnachrichten ab. |
facebook.messages | Ruft Facebook-Nachrichten ab. |
snapchat.messages | Ruft Snapchat-Nachrichten ab. |
snapchat.stories | Ruft Snapchat-Geschichten ab. |
skype.messages | Ruft Skype-Nachrichten ab. |
Aggregierte iCloud Backup-Datentypen
Kennung | Beschreibung |
---|---|
.photos | Überprüft eine iCloud-Sicherung auf Imagedateien. |
.videos | Überprüft ein iCloud-Backup auf Videodateien. |
.recordings | Überprüft ein iCloud-Backup auf Aufnahmedateien. |
.voicemails | Überprüft eine iCloud-Sicherung auf Voicemail-Dateien. |
.app_usage | Überprüft ein iCloud-Backup auf Informationen zur App-Nutzung. |
.installed_apps | Überprüft ein iCloud-Backup auf installierte App-Informationen. |
.locations | Überprüft eine iCloud-Sicherung auf Speicherorte. |
.linked_watches | Überprüft ein iCloud-Backup auf verknüpfte Apple Watch-Informationen. |
iCloud-Fotobibliothek
Fotos icpl.photos
Ruft im iCloud Photo Library-Dienst gespeicherte Fotos ab.
Attribut | Beschreibung |
---|---|
Quelle | icloud.account |
Rahmen | Settings > [username] > iCloud > Photos > iCloud Photo Library |
CallKit
Anrufe von CallKit callkit.calls
Ruft mit dem CallKit-Dienst synchronisierte Anrufprotokolle ab.
Fehler
callkit-uninitialised
Zeigt an, dass der CallKit-Dienst nicht für dieses Konto eingerichtet wurde. Der iCloud-Kontoinhaber kann diesen Fehler mithilfe eines iOS-Geräts beheben, das dem iCloud-Konto zugeordnet ist. Führen Sie dazu die folgenden Schritte aus: - Stellen Sie sicher, dass das Gerät mit Wi-Fi verbunden ist. - Navigieren Sie zu Settings > [username] > iCloud
. - Schalten Sie iCloud Drive aus und warten Sie 30 bis 60 Sekunden, bis die Änderung wirksam wird. - Schalten Sie iCloud Drive ein, sobald die vorherige Änderung abgeschlossen ist. Dies sollte die Initialisierung auslösen.
Wenn der Fehler nach dem Ausführen dieses Vorgangs weiterhin besteht, wenden Sie sich an den Support.
callkit-sync-disabled
In diesem Fall wurde der CallKit-Dienst initialisiert, aber die Voraussetzungen, unter denen Geräte die Synchronisierung des Anrufprotokolls mit der iCloud starten können, wurden nicht erfüllt. Die API löst dies remote über die iCloud auf, aber das mit dem iCloud-Konto verknüpfte Gerät kann den Synchronisierungsstatus möglicherweise nicht neu bewerten, da dieser zwischengespeichert wird.
Der iCloud-Kontoinhaber kann ein Gerät auslösen, um die Synchronisierungsbedingungen für das Anrufprotokoll anhand der folgenden Schritte erneut zu überprüfen:
- Navigieren Sie zu
Settings > [username] > iCloud
. - Schalten Sie iCloud Drive aus und warten Sie 30 bis 60 Sekunden, bis die Änderung wirksam wird.
- Schalten Sie iCloud Drive ein, sobald die vorherige Änderung abgeschlossen ist. Dies sollte die Initialisierung auslösen.
Fehlerbehebung
- Der Verlauf der letzten Anrufe wird in den Umfrageergebnissen nicht zurückgegeben.
Dies wird normalerweise dadurch verursacht, dass das Gerät seine letzten Anruflisteneinträge nicht mit der iCloud synchronisiert hat. Der CallKit-Dienst ist ein interner iOS-Dienst und kann in den Einstellungen nicht aktiviert oder deaktiviert oder manuell synchronisiert werden. Dies kann das Debuggen fehlender Daten erschweren, da unklar ist, welches Gerät mit der iCloud synchronisiert wurde oder nicht.
Dieses Problem tritt häufiger bei Konten auf, bei denen nicht viele Daten synchronisiert werden müssen (weniger als ~ 3 Anrufe), was beim Testen von Konten häufig der Fall ist.
Empfehlungen:
- Vergewissern Sie sich, dass auf dem Gerät mehr als eine Handvoll Anruflistenaufzeichnungen synchronisiert werden müssen. Unsere Tests haben gezeigt, dass ein Gerät mit nur wenigen Anruflisteneinträgen den iCloud-Synchronisierungsprozess nicht auslöst.
- Warten Sie, bis das Gerät eine regelmäßige Synchronisierung durchgeführt hat. Dies kann bis zu 12 Stunden dauern, je nachdem, wie das Gerät verwendet wird, in welchem Konnektivitäts- und Ladezustand es sich befindet.
Stecken Sie das Gerät in die Steckdose. In diesem Zustand löst das Gerät eher eine Synchronisierung aus.
Das alte Anrufprotokoll wird in den Umfrageergebnissen nicht zurückgegeben.
Der CallKit-Dienst dient zum Synchronisieren von Anruflisteneinträgen zwischen Geräten und nicht zum unbegrenzten Speichern dieser Einträge. In der Regel können Anrufverlaufsdatensätze für ca. 3 Monate aus CallKit abgerufen werden. Dies kann jedoch je nach internen Bereinigungsprozessen in der iCloud zwischen den Konten variieren.
CloudKit
Browserverlauf aus iCloud cloudkit_safari.history
Rufen Sie im iCloud-Synchronisierungsdienst gespeicherte Safari-Browserverlaufsdaten ab.
MobileMe
Kontakte aus iCloud mme_contacts.contacts
Ruft in iCloud gespeicherte iOS-Kontaktdaten ab.
Kalender aus iCloud mme_calendar.events
Ruft in iCloud gespeicherte iOS-Kalenderdaten ab.
Notizen aus iCloud mme_notes.notes
Ruft in iCloud gespeicherte iOS Notes-Daten ab.
Finde mein iPhone
Standorte fmip.locations
Abrufen der Positionsdaten für "Mein iPhone suchen"
iOS-Apps
Messages ios_messages.messages
Ruft iOS-Nachrichtendaten ab, einschließlich iMessage und SMS.
Kontakte ios_contacts.contacts
Ruft iOS-Kontaktdaten ab.
Telefon ios_phone.calls
Ruft iOS-Telefondaten ab.
Kalender ios_calendar.events
Ruft iOS-Kalenderdaten ab.
Notizen ios_notes.notes
Ruft iOS Notes-Daten ab.
Gesundheit ios_health.data
Ruft iOS-Gesundheitsdaten ab. Wird oft als HealthKit-Daten bezeichnet.
Safari
ios_safari.history
von Backups ios_safari.history
Ruft die Verlaufsdaten des Safari-Browsers aus einer iCloud-Sicherung ab.
Cookies ios_safari.cookies
Ruft Safari-Cookie-Daten aus einer iCloud-Sicherung ab.
Nachrichten whatsapp.messages
Ruft WhatsApp-Nachrichten ab.
Anrufe whatsapp.calls
Ruft den WhatsApp-Anrufverlauf ab.
Viber
Nachrichten viber.messages
Ruft Viber-Nachrichten ab.
Anrufe viber.calls
Ruft den Viber-Anrufverlauf ab.
Gespräche viber.conversations
Ruft Viber-Gespräche ab.
Kontakte viber.contacts
Ruft Viber-Kontakte ab.
Kik
Nachrichten kik.messages
Ruft Kik-Nachrichten ab.
Kontakte kik.contacts
Ruft Kik-Kontakte ab.
Wanderung
Nachrichten hike.messages
Ruft Hike-Nachrichten ab.
Posts hike.posts
Ruft Wanderbeiträge ab.
Nachrichten wechat.messages
Ruft WeChat-Nachrichten ab.
Tinder
Nachrichten tinder.messages
Ruft Tinder-Nachrichten ab.
Linie
Nachrichten line.messages
Ruft Leitungsnachrichten ab.
Nachrichten facebook.messages
Ruft Facebook-Nachrichten ab.
Snapchat
Nachrichten snapchat.messages
Ruft Snapchat-Nachrichten ab.
Geschichten snapchat.stories
Ruft Snapchat-Geschichten ab.
Skype
Nachrichten skype.messages
Ruft Skype-Nachrichten ab.
Aggregatoren
Fotos .photos
Fasst Image-Dateien aus einer iCloud-Sicherung zusammen.
Videos .videos
Fasst Videodateien aus einer iCloud-Sicherung zusammen.
Aufnahmen .recordings
Fasst Aufnahmedateien aus einer iCloud-Sicherung zusammen.
Voicemails .voicemails
Fasst Voicemail-Dateien aus einer iCloud-Sicherung zusammen.
Anwendungsnutzung .app_usage
Fasst Anwendungsnutzungsinformationen aus einer iCloud-Sicherung zusammen.
Installierte Apps .installed_apps
Fasst installierte App-Informationen aus einer iCloud-Sicherung zusammen.
Standorte .locations
Fasst Standortdaten aus einer iCloud-Sicherung zusammen.
Verknüpfte Uhren .linked_watches
Fasst verknüpfte Apple Watch-Informationen aus einer iCloud-Sicherung zusammen.
Datentypen
Kennung | Beschreibung |
---|---|
backup oder kein Protokoll | Eine Datei aus einer iCloud-Sicherung. |
icpl | Eine Datei aus der iCloud Photo Library. |
Legacy-Datentypen
iCloud-Datentypen
Legacy-Name | neuer Name |
---|---|
live_photos | icpl.photos |
mobileme_contacts | mme_contacts.contacts |
mobileme_calendar | mme_calendar.events |
mobileme_notes | mme_notes.notes |
live_call_history | callkit.calls |
web_browser_history | cloudkit_safari.history |
location | fmip.locations |
Backup-Datentypen
Legacy-Name | neuer Name |
---|---|
photos | .photos |
videos | .videos |
recordings | .recordings |
voicemail | .voicemails |
app_usage | .app_usage |
installed_apps | .installed_apps |
locations | .locations |
linked_watches | .linked_watches |
sms | ios_messages.messages |
contacts | ios_contacts.contacts |
call_history | ios_phone.calls |
calendar_appointments | ios_calendar.events |
notes | ios_notes.notes |
healthkit | ios_health.data |
browser_history | ios_safari.history |
safari_cookies | ios_safari.cookies |
whatsapp_messages | whatsapp.messages |
whatsapp_call_history | whatsapp.calls |
viber_messages | viber.messages |
viber_call_history | viber.calls |
viber_conversations | viber.conversations |
viber_contacts | viber.contacts |
kik_messages | kik.messages |
kik_contacts | kik.contacts |
hike_messages | hike.messages |
hike_posts | hike.posts |
wechat_messages | wechat.messages |
tinder_messages | tinder.messages |
line_messages | line.messages |
facebook_messages | facebook.messages |
snapchat_messages | snapchat.messages |
snapchat_stories | snapchat.stories |
skype_messages | skype.messages |