データ型
APIに対するdata型ポーリングで返された結果は、以下に概説されている形式のいずれかで情報を返します。
結果ペイロード
属性
データJSONペイロードのルート構造には、次の属性があります。
| 名前 | タイプ | 説明 |
|---|---|---|
data | データ オブジェクトのリスト | ソースから取得したデータ。 |
metadata | メタデータ オブジェクト | データに関連するメタdata 。 |
メタデータ
属性
| 名前 | タイプ | 説明 |
|---|---|---|
count | 整数 | data内のオブジェクトの数。 |
ファイル
fileデータタイプは、 filesタイプポーリングを通じてAPIからダウンロードできるファイルへの参照であるため、API全体で見られfiles 。
属性
| 名前 | タイプ | 説明 |
|---|---|---|
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 | 弦 | 会話の 2 番目のパーティ。多くの場合、メッセージング アプリに固有の識別子。 |
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 は特定の情報を推測する必要があります。
そのようなケースの 1 つは、メッセージング アプリ、特にios_messages.messagesデータ モジュールから返されるハンドルと会話情報です。 API は、数値識別子 (そのような情報が存在するか推測できる場合)、またはセカンド パーティのハンドルを使用してconversation_id 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 。これらは、それぞれ電話番号、電子メールアドレス、Webサイト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のタイムワン。 |
all_day | ブール値 | イベントが終日続くかどうか。 |
travel_time | オプションの期間 | イベントの移動時間。 |
recurrence | オプションのネストされたevent.recurrence | イベントの繰り返し設定。 |
location | オプションの文字列 | イベントが行われている場所。 |
start_location | オプションの文字列 | イベントが開始される場所。 |
attendees | オプションの文字列リスト | イベント参加者の名前。 |
attached_url | オプションの文字列 | イベントに関連付けられた URL。 |
creation_date | オプションの日時 | イベントが作成されたとき。祝日など、既定のカレンダー エントリの場合は設定されません。 |
event.recurrence属性
| 名前 | タイプ | 説明 |
|---|---|---|
interval | 整数 | repeatの回数、つまり 1 Yearly (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 Cookie。
属性
| 名前 | タイプ | 説明 |
|---|---|---|
data_type | 文字列、常にcookie | 項目データ型 ID。 |
name | ストリング | クッキーの名前。 |
value | ストリング | Cookie の値。 |
domain | ストリング | Cookie のドメイン指定子。 |
path | ストリング | Cookie のパス指定子。 |
flags | ストリング | Cookie に設定されたフラグ。 |
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"
}