Apple iCloud-service

bijgewerkt
Cover image for: Apple iCloud-service

De API ondersteunt het ophalen van verschillende gegevens en bestanden van Apple's iCloud-services.

Sessions

Het opzetten van een sessie voor de iCloud-services op de API is net zo eenvoudig als inloggen op een iCloud-account. Het proces kan meerdere pogingen vereisen om de sessie te maken als het account multi-factor authenticatie heeft ingeschakeld, zoals 2FA of 2SV.

Een sessie aanmaken voor een account zonder 2FA / 2SV

De sessielading om een sessie te maken voor een account zonder 2FA / 2SV ingeschakeld, bevat de volgende parameters.

naam type Omschrijving
password draad Het iCloud-accountwachtwoord.

CURL gebruiken

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>"
  }
}'

Reactie

{
  "id": "<session ID>",
  "resource": "session",
  ...
  "state": "succeeded",
  "error": null,
  ...
}

Een sessie aanmaken voor een account bij 2FA

Het maken van een sessie voor een 2FA-account is een proces in twee stappen:

  1. Probeer een sessie te maken met alleen het wachtwoord van het iCloud-account. Dit activeert het 2FA-proces, dat een authenticatiecode verzendt naar iOS- en macOS-apparaten die aan het account zijn gekoppeld. De poging tot het maken van een sessie mislukt met error="code-required" .
  2. Gebruik het iCloud-accountwachtwoord en de authenticatiecode ontvangen in (1) om een sessie te creëren. Als de code wordt geaccepteerd, wordt de sessie met succes gemaakt.

Stap 1: maak een sessie

naam type Omschrijving
password draad Het iCloud-accountwachtwoord.

CURL gebruiken

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>"
  }
}'

Reactie

Als het 2FA-proces zoals verwacht wordt geactiveerd, mag de sessie niet worden gemaakt met de foutcode code-required .

{
  "id": "<session ID>",
  "resource": "session",
  ...
  "state": "failed",
  "error": "code-required",
  ...
}

Stap 2: maak een sessie met code

naam type Omschrijving
password draad Het iCloud-accountwachtwoord.
code draad De authenticatiecode.

CURL gebruiken

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": "<authentication code>"
  }
}'

Reactie

{
  "id": "<session ID>",
  "resource": "session",
  ...
  "state": "succeeded",
  "error": null,
  ...
}

Een sessie aanmaken voor een account met 2SV

Het proces om een sessie te maken voor een 2SV-account bestaat uit drie stappen:

  1. Probeer een sessie te maken met het wachtwoord van het iCloud-account. Aangezien 2SV vereist is, zal dit mislukken met error="choice-required" en error_info={"choices": [<2SV enabled devices>]} .
  2. Probeer opnieuw een sessie te maken met het wachtwoord van het iCloud-account en een keuze uit de lijst error_info["choices"] . Deze keer zal de poging het 2SV-proces activeren dat een authenticatiecode naar het gekozen apparaat stuurt. De poging mislukt met error="code-required" .
  3. Gebruik het iCloud-accountwachtwoord en de authenticatiecode ontvangen in (2) om een sessie te creëren. Als de code wordt geaccepteerd, wordt de sessie met succes gemaakt.

Dit activeert het 2SV-proces, dat een authenticatiecode verzendt naar iOS- en macOS-apparaten die aan het account zijn gekoppeld. De poging tot het maken van een sessie mislukt met error="code-required" .

Stap 1: maak een sessie

naam type Omschrijving
password draad Het iCloud-accountwachtwoord.

CURL gebruiken

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>"
  }
}'

Reactie

Als 2SV is ingeschakeld op het account, mislukt de poging tot het maken van een sessie met een choice-required foutkeuze.

{
  "id": "<session ID>",
  "resource": "session",
  ...
  "state": "failed",
  "error": "choice-required",
  "error_info": {
    "choices": [
      "********02 - SMS to Phone Number"
    ]
  }
  ...
}

Stap 2: maak een sessie met keuze

naam type Omschrijving
password draad Het iCloud-accountwachtwoord.
choice draad Het gekozen apparaat waarnaar een verificatiecode moet worden verzonden.

CURL gebruiken

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": "********02 - SMS to Phone Number"
  }
}'

Reactie

Als het 2FA-proces zoals verwacht wordt geactiveerd, mag de sessie niet worden gemaakt met de foutcode code-required .

{
  "id": "<session ID>",
  "resource": "session",
  ...
  "state": "failed",
  "error": "code-required",
  ...
}

Stap 3: maak een sessie met code

naam type Omschrijving
password draad Het iCloud-accountwachtwoord.
code draad De authenticatiecode.

CURL gebruiken

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": "<authentication code>"
  }
}'

Reactie

{
  "id": "<session ID>",
  "resource": "session",
  ...
  "state": "succeeded",
  "error": null,
  ...
}

Brontypen

ID Omschrijving
icloud.account primaire bron Komt overeen met een iCloud-account.

Polls

De iCloud-service ondersteunt alle kenmerken van het poll-payload-schema.

Broninformatie ophalen

Dit peilingtype haalt informatie over de beoogde bron op. De resultaten worden gepubliceerd in JSON-formaat.

CURL gebruiken

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": ["*"]
  }
}'

Gebruik van * 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": ["*"]
  }
)

Het ophalen van gegevens

Met dit polltype worden gegevens uit de beoogde sessie opgehaald en verwerkt. De resultaten worden gepubliceerd in JSON-indeling.

Zie de lijst met beschikbare gegevenstypen voor meer informatie over specifieke gegevenstypen.

CURL gebruiken

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"]
    }
}'

Gebruik van * 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,
)

Bestanden ophalen

Het kenmerk ' files poll-payload' wordt gebruikt om het ophalen van binaire bestanden van de beoogde bron aan te vragen.

De ID's worden doorgaans opgehaald uit een eerdere peiling voor gegevenstypen die directe bestandsverwijzingen bevatten, zoals iCloud-fotobibliotheek, of die bijlagen bevatten, zoals berichtgegevenstypen.

CURL gebruiken

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://ATnrIxddlwbCEjN33NBq8zXQwYgE",
            "icpl://AbfMRXQ55H4WfS5YguuUWxir4hq6"
        ]
    }
}'

Gebruik van * ricloud-py *

import ricloud

# The ID of a session we made earlier.
session_id = "<session ID>"

poll_payload = {
    'files': [
        'icpl://ATnrIxddlwbCEjN33NBq8zXQwYgE',
        'icpl://AbfMRXQ55H4WfS5YguuUWxir4hq6',
    ]
}

poll = ricloud.Poll.create(
    session=session_id,
    payload=poll_payload,
)

Datatypen

iCloud-gegevenstypen

identifier Omschrijving
icpl.photos Haalt iCloud-fotobibliotheekmiddelen op.
mme_contacts.contacts Haalt iCloud-opgeslagen gegevens van iOS-contacten op.
mme_calendar.events Haalt iCloud-opgeslagen iOS-kalendergegevens op.
mme_notes.notes Haalt iCloud opgeslagen iOS Notes-gegevens op.
callkit.calls Haalt gesynchroniseerde iOS Phone-gegevens op van CallKit.
cloudkit_safari.history Haal iCloud opgeslagen Safari-browsergeschiedenisgegevens op.
fmip.devices Find My iPhone-apparaat en locatiegegevens ophalen.

iCloud-fotobibliotheek

Foto's, video's en andere media

Haalt informatie op over foto's, video's en andere media die zijn opgeslagen in iCloud-fotobibliotheek (ICPL).

Deze module vereist dat iCloud-fotobibliotheek is ingeschakeld op het iCloud-account van de gebruiker.

Gegevenstype-ID icpl.photos
Bijbehorende instelling Settings > [username] > iCloud > Photos > iCloud Photo Library

Data attributen

naam type Omschrijving
id draad Een ID voor het gegevensitem. Handig voor het ontdubbelen van gegevens over meerdere peilingen.
filename draad De naam van het bestand zoals het is opgeslagen in ICPL.
files lijst met image , video , audio items Bestanden die zijn gekoppeld aan dit ICPL-item. Het originele bestand, Live Photos, miniaturen worden in deze lijst opgenomen.
date_created datum Tijd Toen het bestand oorspronkelijk was gemaakt. In het geval van foto's of video's die op een iOS-apparaat zijn gemaakt, is dit de datum waarop ze zijn gemaakt. In het geval van bestaande activa die naar ICPL zijn geïmporteerd, is dit de oorspronkelijke importdatum.
date_uploaded datum Tijd Wanneer het bestand voor het laatst is geüpload naar ICPL. Dit komt overeen met wanneer het bestand voor het eerst op te halen was via de ricloud API.
local_date_created optional datetime When the asset was originally created, in local time. This attribute is only populated if sufficient metadata is stored with the asset in ICPL, and is currently supported for parsing by the API. The value of this attribute can vary by a few seconds from that of date_created, as the two are determined from different sources.

Gegevensfilters

naam type Omschrijving
since datum Tijd Bevat alleen items met een date_uploaded later dan de opgegeven waarde.
until datum Tijd Bevat alleen items met een date_uploaded eerder dan de opgegeven waarde.

Voorbeeldgegevens

[
  {
    "id": "7f1384f5038255f5",
    "data_type": "icpl.asset",
    "filename": "IMG_0002.HEIC",
    "files": [
      {
        "id": "icpl://AWo/lDeN8fEExAUJajRHzVx2j605",
        "data_type": "image",
        "extension": "heic",
        "size": 905818,
        "width": 4032,
        "height": 3024
      },
      {
        "id": "icpl://ASDPdJ/LvFWjsBy4YOOp7B5c+XOi",
        "data_type": "video",
        "extension": "mov",
        "size": 2456163,
        "width": 980,
        "height": 1308
      },
      {
        "id": "icpl://ASAwWOvwrvAUuO71uXcU6mm+nMU4",
        "data_type": "image",
        "extension": "jpg",
        "size": 595624,
        "width": 1536,
        "height": 2048
      },
      {
        "id": "icpl://ATy/qmemCas1jzYWuhR4mQywhpzz",
        "data_type": "image",
        "extension": "jpg",
        "size": 65407,
        "width": 360,
        "height": 480
      }
    ],
    "date_created": "2020-09-18T12:32:17Z",
    "date_uploaded": "2020-09-18T12:41:19Z",
    "local_date_created": "2020-09-18T13:32:17+01:00"
  }
]

MobileMe-contacten

Contacten

Haalt gegevens van iOS-contacten op die zijn opgeslagen in iCloud.

Gegevenstype-ID mme_contacts.contacts
Bijbehorende instelling Settings > [username] > iCloud > Contacts

Data attributen

Het gegevenstype mme_contacts.contact neemt de meeste kenmerken over van het mme_contacts.contact contact . De onderstaande tabel geeft een overzicht van aanvullende of verschillende kenmerken.

naam type Omschrijving
id draad Een ID voor het gegevensitem. Handig voor het ontdubbelen van gegevens over meerdere peilingen.
data_type string, altijd mme_contacts.contact Het gegevenstype van het item.
uid draad Een unieke identificatie die kan worden gebruikt om te ontdubbelen over verschillende bronnen van gegevens van iOS-contacten.
image genest image , optioneel Profielafbeelding voor het contact.

Voorbeeldgegevens

[
  {
    "id": "2cf6a837304d6614",
    "data_type": "mme_contacts.contact",
    "uid": "NzNlNjkxYjctOTBmYi00MTYxLWI5YzYtZTk0ZDlhZjljMmE5",
    "first_name": "John",
    "middle_name": "'Gala'",
    "last_name": "Appleseed",
    "prefix": "Mr.",
    "suffix": "Jr.",
    "nickname": "John'o",
    "records": [
      {
        "type": "Phone",
        "name": "MAIN",
        "value": "1-800-MY-APPLE"
      },
      {
        "type": "Phone",
        "name": "UK",
        "value": "0800 039 1010"
      },
      {
        "type": "URL",
        "name": "HOMEPAGE",
        "value": "http://www.apple.com"
      },
      {
        "type": "URL",
        "name": "HOMEPAGE",
        "value": "http://www.apple.com/uk/"
      },
      {
        "City": "Cupertino",
        "State": "CA",
        "ZIP": "95014",
        "name": "WORK",
        "CountryCode": "US",
        "Country": "United States",
        "Street": "1 Infinite Loop",
        "type": "Address",
        "SubLocality": null,
        "Municipality": null
      }
    ],
    "organisation": "Apple Inc.",
    "department": "Marketing",
    "jobtitle": "VP Coring",
    "birthday": "1976-04-01",
    "image": {
      "id": "mme_contact_image://2cf6a837304d6614",
      "data_type": "image",
      "extension": "jpg"
    }
  }
]

MobileMe-agenda-evenementen mme_calendar.events

Haalt in iCloud opgeslagen iOS-agendagegevens op.

MobileMe Notes merkt mme_notes.notes

Haalt iCloud opgeslagen iOS Notes-gegevens op.

CallKit

Oproepen van CallKit callkit.calls

Haalt logboeken op die zijn gesynchroniseerd met de CallKit-service.

fouten

callkit-uninitialised

Geeft aan dat de CallKit-service niet is ingesteld voor dit account. De eigenaar van het iCloud-account kan deze fout oplossen met behulp van een iOS-apparaat dat is gekoppeld aan het iCloud-account via de volgende stappen: - Zorg ervoor dat het apparaat is verbonden met wifi. - Navigeer naar Settings > [username] > iCloud . - Schakel iCloud Drive uit en wacht 30 tot 60 seconden totdat de wijziging van kracht wordt. - Schakel iCloud Drive in zodra de vorige wijziging is voltooid. Dit zou initialisatie moeten activeren.

Als de fout zich blijft voordoen nadat u dit proces hebt uitgevoerd, neemt u contact op met de ondersteuning.

callkit-sync-disabled

In dit geval is de CallKit-service geïnitialiseerd, maar er is niet voldaan aan de voorwaarden voor het synchroniseren van de oproepgeschiedenis met de iCloud. De API zal dit op afstand oplossen via de iCloud, maar het apparaat dat aan het iCloud-account is gekoppeld, evalueert mogelijk hun synchronisatietoestand niet, omdat dit in de cache is opgeslagen.

De iCloud-accounteigenaar kan een apparaat activeren om de synchronisatievoorwaarden van de oproepgeschiedenis opnieuw te controleren via de volgende stappen:

  • Navigeer naar Settings > [username] > iCloud .
  • Schakel iCloud Drive uit en wacht 30 tot 60 seconden totdat de wijziging van kracht wordt.
  • Schakel iCloud Drive in zodra de vorige wijziging is voltooid. Dit zou initialisatie moeten activeren.

Probleemoplossen

  • Recente belgeschiedenis wordt niet geretourneerd in enquêteresultaten.

Dit wordt meestal veroorzaakt doordat het apparaat de nieuwste records voor de oproepgeschiedenis niet met de iCloud heeft gesynchroniseerd. De CallKit-service is een interne iOS-service en kan niet worden in- of uitgeschakeld in de instellingen of worden geactiveerd om handmatig te synchroniseren. Dit kan het opsporen van ontbrekende gegevens bemoeilijken omdat het onduidelijk is wat het apparaat al dan niet met de iCloud heeft gesynchroniseerd.

Dit probleem komt vaker voor bij accounts die niet veel gegevens hoeven te synchroniseren (minder dan ~ 3 oproepen), wat vaak het geval kan zijn bij het testen van accounts.

aanbevelingen:

  • Zorg ervoor dat het apparaat meer dan een handvol records met oproepgeschiedenis heeft om te synchroniseren. Onze testen hebben aangetoond dat een apparaat met slechts enkele records van de belgeschiedenis het synchronisatieproces van iCloud niet zal activeren.
  • Wacht tot het apparaat een periodieke synchronisatie uitvoert. Dit kan tot 12 uur duren, afhankelijk van hoe het apparaat wordt gebruikt, de verbindingsstatus en de oplaadstatus.
  • Steek de stekker in het stopcontact. Het apparaat zal eerder een synchronisatie activeren wanneer het zich in deze status bevindt.

  • Oude oproepgeschiedenis wordt niet geretourneerd in enquêteresultaten.

De CallKit-service is ontworpen voor het synchroniseren van oproepgeschiedenisrecords tussen apparaten en niet voor het voor onbepaalde tijd opslaan van deze records. Doorgaans zijn oproepgeschiedenisrecords haalbaar van CallKit gedurende ongeveer 3 maanden, maar dit kan variëren tussen accounts, afhankelijk van interne opschoonprocessen in de iCloud.

CloudKit

Browsergeschiedenis van iCloud cloudkit_safari.history

Ophalen van Safari-browsergeschiedenisgegevens die zijn opgeslagen in de iCloud-synchronisatieservice.

Zoek mijn en vind mijn iPhone

Apparaatlocaties

Vind mijn apparaat en locatiegegevens ophalen.

Merk op dat dit gegevenstype mogelijk meerdere peilingen vereist, met de tweede op ~ 10-30 seconden na de eerste, om volledige gegevens te retourneren. Dit komt door de manier waarop Find My werkt: de eerste peiling zal Find My activeren om nieuwe gegevens van bereikbare apparaten op te vragen, maar de gegevens zullen nog geen 10-30 seconden beschikbaar zijn.

Gegevenstype-ID fmip.devices
Bijbehorende instelling Settings > [username] > Find My

Data attributen

naam type Omschrijving
id draad Een ID voor het gegevensitem. Handig voor het ontdubbelen van gegevens over meerdere peilingen.
data_type string, altijd fmip.devices Het gegevenstype van het item.
name draad De door de gebruiker ingestelde naam voor het apparaat.
model_name draad Apple's marketingnaam voor het apparaatmodel.
model_identifier draad Apple's ID voor het apparaatmodel.
product_type draad De productcategorie van het apparaat.
location optionele geneste location De laatst gerapporteerde locatie voor het apparaat, indien beschikbaar.
battery_status draad De huidige batterijstatus van het apparaat.
battery_level vlotter Indien bekend, het percentage resterende batterijlading.

Voorbeeldgegevens

[
  {
    "id": "e7694d7a0d2ab6cf",
    "data_type": "fmip.device",
    "name": "John's iMac",
    "model_name": "iMac with Retina 5K display",
    "model_identifier": "iMac15,1",
    "product_type": "iMac",
    "location": null,
    "battery_status": "Unknown",
    "battery_level": 0.0
  },
  {
    "id": "4d86a6181808d152",
    "data_type": "fmip.device",
    "name": "John's iPhone 11",
    "model_name": "iPhone 11",
    "model_identifier": "iPhone6,2",
    "product_type": "iPhone",
    "location": {
      "data_type": "location",
      "latitude": 51.507452392689146,
      "longitude": -0.07398372304584414,
      "altitude": 0.0,
      "horizontal_accuracy": 65.0,
      "vertical_accuracy": 0.0,
      "positioning_type": "Wifi",
      "date_created": "2020-01-01T00:00:00.000000Z"
    },
    "battery_status": "Unknown",
    "battery_level": 0.0
  }
]

Bestand types

ID Omschrijving
icpl Een bestand uit de iCloud-fotobibliotheek.
mme_contact_image Een mme_contacts.contacts contactpersoon mme_contacts.contacts .

Hoe kunnen we helpen?

Ons ondersteuningsteam is er om u te helpen!

Onze kantooruren zijn van maandag tot vrijdag van 09.00 tot 17.00 uur GMT. De tijd is momenteel 10:50 PM GMT.

We streven ernaar om alle berichten binnen één werkdag te beantwoorden.

Ons geweldige ondersteuningsteam

© 2008 - 2024 Reincubate Ltd. Alle rechten voorbehouden. Geregistreerd in Engeland en Wales #5189175, VAT GB151788978. Reincubate® en Camo® zijn geregistreerde handelsmerken. Privacybeleid & termen.