데이터 유형
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"
}
요구
call attributes
| 이름 | 유형 | 설명 |
|---|---|---|
id | 끈 | 항목 ID. |
data_type | 문자열, 항상 call | 항목 데이터 유형 ID. |
call_type | 끈 | 다음 중 하나: Phone , FaceTime Video , FaceTime Audio . |
address |
string | The second party of the call. Could be a phone number, Apple ID, or other identifier. For group calls, it will relate to the handle that started the call. |
participants |
optional list of participant objects | For group calls, a list of all call participants. |
duration | 뜨다 | 통화 시간입니다. |
answered | 부울 | 전화를 받았는지 여부. |
from_me | 부울 | 통화가 발신 또는 수신되었는지 여부. |
video |
bool | Whether the call was a video call or not. |
date | 날짜 시간 | 전화를 걸었을 때. |
call.participant attributes
| 이름 | 유형 | 설명 |
|---|---|---|
handle |
string | The handle associated with the participant, e.g. phone number, WhatsApp ID, Apple ID, etc. |
name |
optional string | The name related to the handle. |
number |
optional string | The phone number related to the handle. |
answered |
bool | Whether or not the participant answered the call. |
샘플 데이터
{
"id": "24116c5b16b85217",
"data_type": "call",
"call_type": "Phone",
"address": "07123456789",
"participants": [{
"handle": "01234567890",
"number": "01234567890",
"answered": true
}, {
"handle": "09876543210",
"number": "09876543210",
"answered": false
}],
"duration": 5.131359,
"answered": true,
"from_me": true,
"video": false,
"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"
}