데이터 유형
API에 대한 data
유형 폴링에 대해 리턴 된 결과는 아래에 설명 된 형식 중 하나의 형식으로 정보를 리턴합니다.
결과 페이로드
속성
데이터 JSON 페이로드의 루트 구조에는 다음과 같은 속성이 있습니다.
이름 | 유형 | 설명 |
---|---|---|
data | 데이터 개체 목록 | 소스에서 검색된 데이터입니다. |
metadata | 메타데이터 개체 | 데이터와 관련된 메타 data . |
메타 데이터
속성
이름 | 유형 | 설명 |
---|---|---|
count | 정수 | data 의 개체 수입니다. |
파일
API를 통해 files
유형 폴링을 통해 다운로드 할 수있는 파일에 대한 참조이므로 file
데이터 유형은 API 전체에서 볼 수 있습니다.
속성
이름 | 유형 | 설명 |
---|---|---|
file_id | 끈 | API에서 파일을 요청하는 데 사용되는 식별자입니다. 값은 현재 소스의 범위 내에서만 고유함이 보장됩니다. |
type | 문자열, 항상 file | 데이터 유형 지정자. |
name | 끈 | 확장자를 제외한 파일 이름입니다. |
extension | 문자열, 선택 사항 | 가능한 경우 파일의 확장자입니다. |
mime_type | 문자열, 선택사항 | 사용 가능한 경우 파일의 MIME 유형입니다. |
size | 정수, 선택 사항 | 사용 가능한 경우 파일의 크기입니다. |
checksum | 문자열, 선택사항 | 사용 가능한 경우 md5 체크섬입니다. |
예
{ "file_id": "abc123", "type": "file", "name": "IMG_0003", "extension": "jpg", "mime_type": "image/jpeg", "size": 2505426, }
영상
이름 | 유형 | 설명 |
---|---|---|
file_id | 끈 | API에서 파일을 요청하는 데 사용되는 식별자입니다. 값은 현재 소스의 범위 내에서만 고유함이 보장됩니다. |
type | 끈 | 항상 image . |
filename | 끈 | 파일의 원래 파일 이름입니다. 이 파일 이름의 확장자는 파일의 확장자와 일치해야 합니다. |
file_path | 끈 | 서비스 내의 다른 파일과 관련된 파일의 경로입니다. 예를 들어 백업 내의 경로입니다. |
width | 정수, 선택 사항 | 사용 가능한 경우 파일의 너비입니다. |
height | 정수, 선택 사항 | 가능한 경우 파일의 높이입니다. |
예
{ "file_id": "abc123", "type": "image", "filename": "IMG_0003.JPG", "file_path": "Media/DCIM/100APPLE/IMG_0003.JPG", "name": "IMG_0003", "extension": "jpg", "mime_type": "image/jpeg", "width": 3000, "height": 2002, "size": 2505426, }
비디오
이름 | 유형 | 설명 |
---|---|---|
file_id | 끈 | API에서 파일을 요청하는 데 사용되는 식별자입니다. 값은 현재 소스의 범위 내에서만 고유함이 보장됩니다. |
type | 끈 | 항상 video . |
filename | 끈 | 파일의 원래 파일 이름입니다. 이 파일 이름의 확장자는 파일의 확장자와 일치해야 합니다. |
file_path | 끈 | 서비스 내의 다른 파일과 관련된 파일의 경로입니다. 예를 들어 백업 내의 경로입니다. |
width | 정수, 선택 사항 | 사용 가능한 경우 파일의 너비입니다. |
height | 정수, 선택 사항 | 가능한 경우 파일의 높이입니다. |
duration | 정수, 선택 사항 | 가능한 경우 동영상의 길이입니다. |
예
{ "file_id": "abc123", "type": "video", "filename": "IMG_0009.MOV", "file_path": "Media/DCIM/100APPLE/IMG_0009.MOV", "name": "IMG_0009", "extension": "mov", "mime_type": "video/quicktime", "width": 1920, "height": 1080, "size": 5421796, "duration": 9.135623 }
동영상
이름 | 유형 | 설명 |
---|---|---|
file_id | 끈 | API에서 파일을 요청하는 데 사용되는 식별자입니다. 값은 현재 소스의 범위 내에서만 고유함이 보장됩니다. |
type | 끈 | 항상 audio . |
filename | 끈 | 파일의 원래 파일 이름입니다. 이 파일 이름의 확장자는 파일의 확장자와 일치해야 합니다. |
file_path | 끈 | 서비스 내의 다른 파일과 관련된 파일의 경로입니다. 예를 들어 백업 내의 경로입니다. |
transcription | 문자열, 선택사항 | 가능한 경우 오디오 메시지의 텍스트 전사입니다. |
예
{ "id": "abc123", "type": "audio", "filename": "Audio Message.caf", "file_path": "Library/SMS/Attachments/.../Audio Message.caf", "transcription": "Test voice message", }
오디오 전사
백업 데이터에 사용 가능한 경우 오디오 메시지의 기록이 audio
개체의 일부로 반환됩니다. 이는 iOS 17 이후 iOS 메시지에서 작성된 오디오 메시지에서 사용할 수 있습니다.
메시지
속성
이름 | 유형 | 설명 |
---|---|---|
id | 끈 | 메시지의 고유 식별자입니다. 필요한 경우 반환된 데이터를 중복 제거하는 데 사용합니다. |
data_type | 문자열, 항상 message | 데이터 유형 지정자. |
type | 문자열, 선택 사항 | 메시징 서비스가 다양한 메시지 유형을 처리할 때 사용됩니다. 예를 들어 iOS 메시지의 경우 SMS 및 iMessage 입니다. |
handle | 끈 | 대화의 두 번째 당사자이며 종종 메시징 앱에 고유한 식별자입니다. |
handle_name | 문자열, 선택 사항 | 사용 가능한 경우 핸들의 표시 이름입니다. |
contact | 중첩된 연락처, 선택 사항 | 대화의 두 번째 당사자의 iOS 연락처를 참조하는 개체입니다. |
conversation_id | 끈 | 대화별로 메시지를 그룹화하는 식별자입니다. |
from_me | 부울 | 메시지를 보냈는지 받았는지 여부입니다. |
user | 문자열, 선택 사항 | 여러 사용자/계정이 기기에서 메시징 앱을 사용 중인 경우 메시징 앱 사용자. |
text | 끈 | 메시지의 본문입니다. |
edits | 편집 목록, 선택 사항 | 메시지 편집이 지원되고 기록이 백업에 유지되는 앱의 메시지 내용 편집 목록입니다. |
attachments | 파일 목록, 선택 사항 | download_file 메서드와 함께 사용할 수 있는 file_id 값의 배열입니다. 메시지에 첨부 파일이 없으면 빈 배열이 반환됩니다. |
group | 문자열, 선택 사항 | 메시지가 전송된 시점의 그룹 이름입니다. |
group_id | 문자열, 선택 사항 | 해당 앱의 컨텍스트 내에서 그룹의 고유 식별자입니다. 정수가 아닐 수 있으며, 존재하는 경우 conversation_id 외에 정보만 제공합니다. |
group_handles | 문자열 목록, 선택 사항 | 이 값은 개인 간 메시지의 경우 null 이며 그룹 대화에서는 전화번호 또는 iMessage 이메일 주소를 나타내는 문자열 배열입니다. |
group_contacts | 문자열, 선택 사항 | 그룹의 iOS 연락처를 참조하는 개체 배열입니다. |
deleted | 부울, 선택 사항 | 메시지가 삭제되었는지 여부를 나타내는 부울 값입니다. |
marked_unread | 부울, 선택 사항 | 가능한 경우 사용자가 메시지를 읽지 않음으로 표시했는지 여부입니다. |
date | 날짜 시간 | 메시지를 보내거나 받은 시간입니다. |
date_read | 날짜/시간, 선택사항 | 가능한 경우 메시지를 처음 읽은 날짜입니다. |
date_edited | 날짜 시간, 선택 사항 | 해당되는 경우 메시지가 마지막으로 편집된 시간입니다. |
date_deleted | 날짜 시간, 선택 사항 | 메시지가 삭제된 경우(해당되는 경우). |
예
{ "id": "a1b2c3d4", "data_type": "message", "type": "SMS", "handle": "reincubate", "handle_name": "Reincubate", "conversation_id": "w6x7y8z9", "from_me": false, "text": "Hi from London!", "edits": [{ "text": "Hi!", "date": "2023-06-27T10:20:00.000000Z" }, { "text": "Hi from London!", "date": "2023-06-27T10:21:00.000000Z" }], "attachments": [], "group_handles": [ "+441234567890", "renate@reincubate.com" ], "deleted": false, "date": "2023-06-27T10:20:00.000000Z", "date_edited": "2023-06-27T10:21:00.000000Z" }
메시지 핸들 및 대화
API의 데이터 추출기는 역사적으로 광범위한 소스 데이터를 지원하며 시간이 지남에 따라 앱 및 iOS 업데이트를 통해 조각난 데이터를 재정렬하려고 시도합니다. 메시징 앱이 새로운 기능을 추가함에 따라 기본 데이터가 새 구조로 완벽하게 마이그레이션되도록 항상 주의를 기울이지는 않습니다. 따라서 API는 일관된 데이터를 반환하기 위해 특정 정보를 추론해야 합니다.
이러한 사례 중 하나는 메시징 앱, 특히 ios_messages.messages
데이터 모듈에서 반환된 핸들 및 대화 정보에 대한 것입니다. API는 해당 정보가 존재하거나 추론할 수 있는 경우 숫자 식별자로 conversation_id
를 채우거나, 제2자의 핸들을 사용하여 conversation_id
를 설정하도록 대체합니다. 따라서 이 필드를 사용하여 동일한 채팅의 메시지를 함께 묶는 것이 좋습니다.
수정 및 삭제된 메시지
편집 및 삭제된 메시지에 대한 정보는 iOS 16 이상을 실행하는 장치에서 만든 백업의 ios_messages.messages
에서 사용할 수 있습니다. 삭제된 메시지의 경우 백업이 생성된 시점( Apple에서는 삭제 후 30~40일) 에서 메시지를 복구할 수 있는 동안에만 정보를 사용할 수 있을 것으로 예상됩니다.
편집된 메시지의 경우 편집 기록이 edits
속성에 반환됩니다. 각 편집에는 text
상태와 편집이 커밋된 시간이 포함됩니다. 메시지 자체의 text
속성은 항상 최종 편집의 속성과 동일합니다.
대화
대화 스레드.
이름 | 유형 | 설명 |
---|---|---|
id | 끈 | 항목 ID. |
data_type | 문자열, 항상 conversation | 항목 데이터 유형 ID. |
group | 선택적 문자열 | 그룹의 이름입니다. |
members | contact 목록 | 대화 참가자. |
접촉
contact
속성
이름 | 유형 | 설명 |
---|---|---|
id | 끈 | 항목 ID. |
data_type | 문자열, 항상 contact | 항목 데이터 유형 ID. |
name | 선택적 문자열 | 연락처의 전체 이름입니다. |
first_name | 선택적 문자열 | 연락처의 이름입니다. |
middle_name | 선택적 문자열 | 연락처의 중간 이름입니다. |
last_name | 선택적 문자열 | 연락처의 성입니다. |
prefix | 선택적 문자열 | 연락처의 이름 접두사입니다. |
suffix | 선택적 문자열 | 연락처의 이름 접미사입니다. |
nickname | 선택적 문자열 | 연락처의 닉네임입니다. |
records | contact.record 항목 목록 | 연락처와 연결된 연락처 레코드입니다. |
organisation | 선택적 문자열 | 연락처의 조직 이름입니다. |
department | 선택적 문자열 | 조직 내 연락처의 부서입니다. |
jobtitle | 선택적 문자열 | 조직 내 연락처의 직책입니다. |
birthday | 선택적 날짜 | 연락처의 생일입니다. |
contact.record
속성
연락처 레코드 항목에는 Phone
, Email
, URL
, Social
및 Address
5 가지 유형이 있습니다. 전화 번호, 이메일 주소, 웹 사이트 URL, 소셜 미디어 계정 핸들 및 주소에 각각 해당합니다.
처음 4 개의 속성은 동일합니다.
이름 | 유형 | 설명 |
---|---|---|
type | 끈 | Phone , Email , URL , Social 중 하나입니다. |
name | 선택적 문자열 | 레코드와 연결된 레이블입니다. |
value | 끈 | 레코드의 값입니다. |
Address
연락처 레코드 유형에는 추가 주소 필드가 있습니다.
이름 | 유형 | 설명 |
---|---|---|
type | 문자열, 항상 Address | 전화번호 기록입니다. |
name | 선택적 문자열 | 번호와 관련된 레이블입니다. |
CountryCode | 선택적 문자열 | 국가 코드입니다. |
Country | 선택적 문자열 | 국가 이름입니다. |
ZIP | 선택적 문자열 | 우편 번호입니다. |
State | 선택적 문자열 | 주 이름 또는 약어입니다. |
City | 선택적 문자열 | 도시 이름입니다. |
Municipality | 선택적 문자열 | 시정촌 이름입니다. |
SubLocality | 선택적 문자열 | 이웃 또는 지역 이름. |
Street | 선택적 문자열 | 거리 주소 이름입니다. |
샘플 데이터
{ "id": "2cf6a837304d6614", "data_type": "contact", "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 Juicing", "birthday": "1976-04-01" }
요구
속성
이름 | 유형 | 설명 |
---|---|---|
id | 끈 | 항목 ID. |
data_type | 문자열, 항상 call | 항목 데이터 유형 ID. |
call_type | 끈 | 다음 중 하나: Phone , FaceTime Video , FaceTime Audio . |
address | 끈 | 통화 대상입니다. 전화번호, Apple ID 또는 기타 식별자일 수 있습니다. |
duration | 뜨다 | 통화 시간입니다. |
answered | 부울 | 전화를 받았는지 여부. |
from_me | 부울 | 통화가 발신 또는 수신되었는지 여부. |
date | 날짜 시간 | 전화를 걸었을 때. |
샘플 데이터
{ "id": "24116c5b16b85217", "data_type": "call", "call_type": "Phone", "address": "07123456789", "duration": 5.131359, "answered": false, "from_me": true, "date": "2015-07-20 10:23:27.538011" }
행사
event
속성
이름 | 유형 | 설명 |
---|---|---|
id | 끈 | 항목 ID. |
data_type | 문자열, 항상 event | 항목 데이터 유형 ID. |
unique_identifier | 선택적 문자열 | 여러 이벤트 데이터 소스에서 중복 제거를 위한 항목 UID입니다. |
calendar | 선택적 문자열 | 달력 이름. |
calendar_uid | 선택적 문자열 | 캘린더 UID. |
calendar_store | 선택적 문자열 | 캘린더 저장소 유형, 즉 iCloud , Default . |
summary | 선택적 문자열 | 이벤트 요약 또는 제목입니다. |
description | 선택적 문자열 | 이벤트 설명입니다. |
start_date | 선택적 날짜/시간 | 이벤트가 시작되면. |
end_date | 선택적 날짜/시간 | 이벤트가 종료되면. |
start_time_zone | 선택적 문자열 | start_date 의 시간대입니다. |
end_time_zone | 선택적 문자열 | end_date 의 timeone입니다. |
all_day | 부울 | 이벤트가 하루 종일 지속되는지 여부. |
travel_time | 선택적 기간 | 이벤트의 이동 시간 기간입니다. |
recurrence | 선택적 중첩 event.recurrence | 이벤트의 반복 설정입니다. |
location | 선택적 문자열 | 이벤트가 진행되는 곳입니다. |
start_location | 선택적 문자열 | 이벤트가 시작되는 곳. |
attendees | 선택적 문자열 목록 | 이벤트 참석자의 이름. |
attached_url | 선택적 문자열 | 이벤트와 연결된 URL입니다. |
creation_date | 선택적 날짜/시간 | 이벤트가 생성된 시간입니다. 공휴일과 같은 기본 캘린더 항목인 경우 설정되지 않습니다. |
event.recurrence
속성
이름 | 유형 | 설명 |
---|---|---|
interval | 정수 | repeat 할 반복 횟수, 즉 1년마다(1년에 한 번). |
repeat | 끈 | OneTime , Daily , Weekly , Monthly , Yearly 중 하나입니다. |
repeat_end_date | 선택적 날짜/시간 | 반복을 멈출 때. |
샘플 데이터
{ "id": "3", "unique_identifier": "f5fcf872-34f6-3f60-ba03-74d5a7a3bbbb", "calendar": "Home", "calendar_id": "477a2001537fe178d6b77cdceb8bac2e", "calendar_store": "Default", "summary": "Christmas Day", "description": "Bank holiday in the UK", "start_date": "2017-12-25T00:00:00.000000", "end_date": "2017-12-25T23:59:59.000000", "start_time_zone": None, "end_time_zone": None, "all_day": True, "travel_time": None, "recurrence": { "interval": 1, "repeat": "Yearly", "repeat_end_date": None, "specifier": "" }, "location": None, "start_location": None, "attendees": ["John Appleseed"], "attached_url": None, "creation_date": None }
노트
{ "title": "Monday meeting:", "note": "Monday meeting:\n Discuss X,\n discuss Y.", "summary": null, "folder": "icloud", "sub_folder": "work", "attachments": [ { "type": "image", "file_id": "8e22cf6e524357b4eb3da775d193072ebba9543f", "file_path": "Media/80DDDEAD-B33F-37B2-7219432C0359/Image.jpeg" } ], "creation_date": "2016-06-06 13:23:20.000000", "last_modified": "2016-06-07 15:21:25.000000" }
방문
웹 사이트 페이지 방문 기록.
속성
이름 | 유형 | 설명 |
---|---|---|
data_type | 문자열, 항상 visit | 항목 데이터 유형 ID. |
url | 끈 | 방문한 페이지의 URL입니다. |
title | 끈 | 방문한 페이지의 제목입니다. |
date_created | 날짜 시간 | 방문이 발생한 시기. |
{ "data_type": "visit", "url": "https://reincubate.com/", "title": "Reincubate: the app data company", "date_created": "2020-01-01T00:00:00.000000Z" }
쿠키
HTTP 쿠키.
속성
이름 | 유형 | 설명 |
---|---|---|
data_type | 문자열, 항상 cookie | 항목 데이터 유형 ID. |
name | 끈 | 쿠키의 이름입니다. |
value | 끈 | 쿠키의 값입니다. |
domain | 끈 | 쿠키의 도메인 지정자입니다. |
path | 끈 | 쿠키의 경로 지정자입니다. |
flags | 끈 | 쿠키에 설정된 모든 플래그입니다. |
creation_date | 날짜 시간 | 쿠키가 생성된 시기입니다. |
expiry_date | 날짜 시간 | 쿠키가 만료될 때. |
{ "data_type": "cookie", "name": "sample_cookies", "value": "sample_value", "domain": "reincubate.com", "path": "/", "flags": "", "creation_date": "2020-01-01T00:00:00.000000Z", "expiry_date": "2020-01-01T00:00:00.000000Z" }
위치
데이터 속성
이름 | 유형 | 설명 |
---|---|---|
data_type | 문자열, 항상 location | 데이터 유형 식별자. |
latitude | 뜨다 | 위치의 위도 좌표입니다. |
longitude | 뜨다 | 위치의 경도 좌표입니다. |
altitude | 뜨다 | 위치의 고도 좌표입니다. |
horizontal_accuracy | 뜨다 | 측정의 수평 정확도입니다. |
vertical_accuracy | 뜨다 | 측정의 수직 정확도입니다. |
position_type | 끈 | 사용된 측정 방법의 식별자입니다. |
date_created | 날짜 시간 | 측정이 이루어진 때. |
샘플 데이터
{ "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" }