Apple iCloud 서비스

업데이트 됨
Cover image for: Apple iCloud 서비스

API는 Apple의 iCloud 서비스에서 다양한 데이터 및 파일 검색을 지원합니다.

세션

API에서 iCloud 서비스에 대한 세션을 설정하는 것은 iCloud 계정에 로그인하는 것만큼이나 간단합니다. 계정에서 다중 요소 인증 (예 : 2FA 또는 2SV)을 사용하도록 설정 한 경우 세션을 만들 때 여러 번 시도해야 할 수 있습니다.

2FA / 2SV가없는 계정에 대한 세션 생성

2FA / 2SV를 사용하지 않는 계정에 대한 세션을 작성하기위한 세션 페이로드에는 다음 매개 변수가 포함됩니다.

이름 유형 기술
password iCloud 계정 비밀번호

cURL 사용

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

응답

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

2FA를 사용하여 계정에 대한 세션 생성

2FA 지원 계정에 대한 세션을 만드는 것은 두 단계 프로세스입니다.

  1. iCloud 계정 비밀번호 만 사용하여 세션을 작성하십시오. 그러면 계정과 연결된 iOS 및 macOS 장치에 인증 코드를 보내는 2FA 프로세스가 시작됩니다. 세션 생성 시도는 error="code-required" 와 함께 실패 error="code-required" .
  2. (1)에서받은 iCloud 계정 비밀번호와 인증 코드를 사용하여 세션을 작성하십시오. 코드가 승인되면 세션이 성공적으로 생성됩니다.

1 단계 : 세션 생성

이름 유형 기술
password iCloud 계정 비밀번호

cURL 사용

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

응답

2FA 프로세스가 예상대로 트리거되면 code-required 오류와 함께 세션이 작성되지 않아야 code-required .

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

2 단계 : 코드로 세션 만들기

이름 유형 기술
password iCloud 계정 비밀번호
code 인증 코드

cURL 사용

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

응답

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

2SV를 사용하여 계정에 대한 세션 생성

2SV 지원 계정에 대한 세션을 생성하는 프로세스에는 세 단계가 있습니다.

  1. iCloud 계정 비밀번호를 사용하여 세션을 작성하십시오. 2SV가 필요하므로 error="choice-required"error_info={"choices": [<2SV enabled devices>]} 와 함께 실패 error="choice-required" .
  2. iCloud 계정 비밀번호와 error_info["choices"] 목록에서 선택하여 세션을 다시 작성하십시오. 이번에는 인증 코드를 선택한 장치로 보내는 2SV 프로세스가 시작됩니다. error="code-required" 시도가 실패 error="code-required" .
  3. (2)에서받은 iCloud 계정 비밀번호와 인증 코드를 사용하여 세션을 작성하십시오. 코드가 승인되면 세션이 성공적으로 생성됩니다.

그러면 2SV 프로세스가 시작되어 계정과 연결된 iOS 및 macOS 장치에 인증 코드가 전송됩니다. 세션 생성 시도는 error="code-required" 와 함께 실패 error="code-required" .

1 단계 : 세션 생성

이름 유형 기술
password iCloud 계정 비밀번호

cURL 사용

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

응답

계정에서 2SV를 사용하도록 설정하면 세션 choice-required 시도가 choice-required 오류와 함께 실패 choice-required .

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

2 단계 : 선택 사항이있는 세션 생성

이름 유형 기술
password iCloud 계정 비밀번호
choice 인증 코드를 보낼 선택된 장치입니다.

cURL 사용

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

응답

2FA 프로세스가 예상대로 트리거되면 code-required 오류로 세션이 작성되지 않아야 code-required .

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

3 단계 : 코드로 세션 만들기

이름 유형 기술
password iCloud 계정 비밀번호
code 인증 코드

cURL 사용

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

응답

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

소스 유형

식별자 기술
icloud.account 기본 소스 iCloud 계정에 해당합니다.

투표소

iCloud 서비스는 모든 폴 페이로드 스키마 속성을 지원합니다.

소스 정보 검색

이 폴링 유형은 대상 소스에 대한 정보를 검색합니다. 결과는 JSON 형식으로 게시됩니다.

cURL 사용

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

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

데이터 검색

이 폴링 유형은 대상 세션에서 데이터를 검색하고 처리합니다. 결과는 JSON 형식으로 게시됩니다.

특정 데이터 유형에 대한 자세한 정보 는 사용 가능한 데이터 유형 목록을 참조하십시오.

cURL 사용

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

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

파일 검색 중

files 폴 페이로드 속성은 대상 소스에서 이진 파일 검색을 요청하는 데 사용됩니다.

ID는 일반적으로 iCloud 사진 보관함과 같은 직접 파일 참조를 포함하거나 메시지 데이터 유형과 같은 첨부 파일을 포함하는 데이터 유형에 대한 이전 폴에서 검색됩니다.

cURL 사용

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

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

자료형

iCloud 데이터 유형

식별자 기술
icpl.photos iCloud 사진 보관함 자산을 검색합니다.
mme_contacts.contacts iCloud에 저장된 iOS 연락처 데이터를 검색합니다.
mme_calendar.events iCloud에 저장된 iOS 캘린더 데이터를 검색합니다.
mme_notes.notes iCloud에 저장된 iOS Notes 데이터를 검색합니다.
callkit.calls CallKit 동기화 된 iOS 전화 데이터를 검색합니다.
cloudkit_safari.history iCloud에 저장된 Safari 브라우저 기록 데이터를 검색합니다.
fmip.devices 내 iPhone 장치 및 위치 데이터 찾기를 검색합니다.

iCloud 사진 보관함

사진, 비디오 및 기타 미디어

iCloud 사진 보관함 (ICPL)에 저장된 사진, 비디오 및 기타 미디어에 관한 정보를 검색합니다.

이 모듈을 사용하려면 사용자의 iCloud 계정에서 iCloud 사진 보관함이 활성화되어 있어야합니다.

데이터 타입 ID icpl.photos
관련 설정 Settings > [username] > iCloud > Photos > iCloud Photo Library

데이터 속성

이름 유형 기술
id 데이터 항목의 식별자입니다. 여러 설문 조사에서 데이터 중복 제거에 유용합니다.
filename ICPL에 저장된 파일의 이름입니다.
files image , video , audio 항목 목록 이 ICPL 자산과 관련된 파일. 원본 파일 인 Live Photos, 썸네일이이 목록에 포함됩니다.
date_created 날짜 시간 파일이 처음 만들어 졌을 때 iOS 기기에서 촬영 한 사진 또는 비디오의 경우 촬영 날짜입니다. ICPL로 가져온 기존 자산의 경우 원래 수입 날짜가됩니다.
date_uploaded 날짜 시간 파일이 ICPL에 마지막으로 업로드 된시기 이는 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.

데이터 필터

이름 유형 기술
since 날짜 시간 제공된 값보다 늦게 date_uploadeddate_uploaded 항목 만 포함합니다.
until 날짜 시간 제공된 값보다 date_uploaded 빠른 항목 만 포함합니다.

샘플 데이터

[
  {
    "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 연락처

콘택트 렌즈

iCloud에 저장된 iOS 연락처 데이터를 검색합니다.

데이터 타입 ID mme_contacts.contacts
관련 설정 Settings > [username] > iCloud > Contacts

데이터 속성

mme_contacts.contact 데이터 유형은 기본 contact 데이터 유형에서 대부분의 속성을 상속합니다. 아래 표에는 추가 또는 다른 속성이 요약되어 있습니다.

이름 유형 기술
id 데이터 항목의 식별자입니다. 여러 설문 조사에서 데이터 중복 제거에 유용합니다.
data_type 문자열, 항상 mme_contacts.contact 아이템의 데이터 타입.
uid 다양한 iOS 연락처 데이터 소스에서 중복 제거하는 데 사용할 수있는 고유 식별자입니다.
image 중첩 된 image 항목 (선택 사항) 연락처의 프로필 이미지입니다.

샘플 데이터

[
  {
    "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 캘린더 이벤트 mme_calendar.events

iCloud에 저장된 iOS 캘린더 데이터를 가져옵니다.

MobileMe 노트 노트 mme_notes.notes

iCloud에 저장된 iOS Notes 데이터를 검색합니다.

콜킷

CallKit callkit.calls 호출

CallKit 서비스와 동기화 된 통화 기록을 검색합니다.

오류

callkit-uninitialised

이 계정에 대해 CallKit 서비스가 설정되지 않았 음을 나타냅니다. iCloud 계정 소유자는 다음 단계를 통해 iCloud 계정과 연관된 iOS 장치를 사용하여이 오류를 해결할 수 있습니다.-장치가 Wi-Fi에 연결되어 있는지 확인하십시오. - Settings > [username] > iCloud . -iCloud Drive를 끄고 변경 사항이 적용되기를 30 ~ 60 초 동안 기다리십시오. -이전 변경이 완료되면 iCloud Drive를 켭니다. 초기화가 시작됩니다.

이 과정을 수행 한 후에도 오류가 지속되면 지원 부서에 문의하십시오.

callkit-sync-disabled

이 경우 CallKit 서비스가 초기화되었지만 기기가 iCloud에 통화 내역을 동기화하기 위해 필요한 조건이 충족되지 않았습니다. API는 iCloud를 통해이 문제를 원격으로 해결하지만 iCloud 계정과 연결된 기기는 캐시 된 상태이므로 동기화 상태를 재평가 할 수 없습니다.

iCloud 계정 소유자는 다음 단계를 통해 디바이스가 통화 기록 동기화 조건을 다시 확인하도록 트리거 할 수 있습니다.

  • Settings > [username] > iCloud .
  • iCloud Drive를 끄고 변경 사항이 적용되기를 30 ~ 60 초 동안 기다리십시오.
  • 이전 변경이 완료되면 iCloud Drive를 켭니다. 초기화가 시작됩니다.

문제 해결

  • 최근 통화 기록이 설문 조사 결과에 표시되지 않습니다.

이는 일반적으로 기기가 최신 통화 기록 레코드를 iCloud와 동기화하지 않았기 때문에 발생합니다. CallKit 서비스는 내부 iOS 서비스이며 설정에서 켜거나 끌 수 없거나 수동으로 동기화되도록 트리거 될 수 없습니다. 이로 인해 장치가 iCloud와 동기화되었거나 동기화되지 않았는지 여부가 불분명하여 누락 된 데이터를 디버그하는 것이 어려워 질 수 있습니다.

이 문제는 동기화 할 데이터가 많지 않은 계정 (~ 3 통화 미만)에 더 일반적이며, 이는 종종 계정 테스트의 경우 일 수 있습니다.

추천 :

  • 장치에 동기화 할 통화 기록 레코드가 몇 개 이상 있는지 확인하십시오. 테스트 결과 통화 기록 레코드가 두 개인 기기 만 iCloud 동기화 프로세스를 트리거하지 않는 것으로 나타났습니다.
  • 장치가 주기적 동기화를 수행 할 때까지 기다리십시오. 장치 사용 방법, 연결 상태 및 충전 상태에 따라 최대 12 시간이 걸릴 수 있습니다.
  • 장치를 전원에 연결하십시오. 이 상태에서는 장치가 동기화를 트리거 할 가능성이 높습니다.

  • 이전 통화 기록은 설문 조사 결과에 반환되지 않습니다.

CallKit 서비스는 장치간에 호출 기록 레코드를 동기화하고 이러한 레코드를 무기한 저장하지 않기 위해 설계되었습니다. 일반적으로 통화 기록 레코드는 CallKit에서 약 3 개월 동안 검색 할 수 있지만 iCloud의 내부 정리 프로세스에 따라 계정마다 다를 수 있습니다.

CloudKit

iCloud cloudkit_safari.history 브라우저 기록

iCloud 동기화 서비스에 저장된 Safari 브라우저 기록 데이터를 검색하십시오.

내 찾기 및 내 아이폰 찾기

장치 위치

내 장치 및 위치 데이터 찾기를 검색합니다.

이 데이터 유형은 완전한 데이터를 리턴하기 위해 첫 번째 후 ~ 10-30 초 후에 두 번째 폴링이 필요한 다중 폴링이 필요할 수 있습니다. 이는 나의 찾기 작동 방식 때문입니다. 첫 번째 폴링은 나의 찾기를 트리거하여 도달 가능한 장치에서 새 데이터를 요청하지만 10-30 초 동안 데이터를 사용할 수 없게됩니다.

데이터 타입 ID fmip.devices
관련 설정 Settings > [username] > Find My

데이터 속성

이름 유형 기술
id 데이터 항목의 식별자입니다. 여러 설문 조사에서 데이터 중복 제거에 유용합니다.
data_type 문자열, 항상 fmip.devices 아이템의 데이터 타입.
name 장치의 사용자 설정 이름입니다.
model_name 장치 모델에 대한 Apple의 마케팅 이름.
model_identifier 장치 모델에 대한 Apple의 식별자입니다.
product_type 장치의 제품 범주입니다.
location 선택적 중첩 location 사용 가능한 경우 장치에 대해 마지막으로보고 된 위치입니다.
battery_status 장치의 현재 배터리 상태입니다.
battery_level 흙손 알려진 경우 배터리 잔량 백분율입니다.

샘플 데이터

[
  {
    "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
  }
]

파일 형식

식별자 기술
icpl iCloud 사진 보관함의 파일.
mme_contact_image mme_contacts.contacts 연락처 프로필 이미지를 접촉합니다.

어떻게 도와 드릴까요?

지원 팀이 도와 드리겠습니다!

근무 시간은 월요일부터 금요일, 오전 9 시부 터 오후 5시 (그리니치 표준시)입니다. 시간은 현재 6:28 오후 GMT입니다.

우리는 1 일 이내에 모든 메시지에 답장하고자합니다.

지원 섹션으로 이동 › 엔터프라이즈 팀에 문의하십시오. ›
우리의 멋진 지원 팀

© 2008 - 2020 Reincubate Ltd. 판권 소유. 영국과 웨일즈에 등록 #5189175, VAT GB151788978. Reincubate와 Camo는 상표입니다. 개인 정보 정책 & 자귀. 우리는 2FA를 권장합니다. 런던에서 Built로 지어졌습니다.