Tipi di dati
I risultati restituiti per data
sondaggi sul tipo di data
rispetto all'API restituiranno le informazioni in uno dei formati descritti di seguito.
Payload del risultato
attributi
La struttura radice del payload JSON di dati ha i seguenti attributi.
nome | genere | descrizione |
---|---|---|
data | elenco di oggetti dati | I dati recuperati dall'origine. |
metadata | oggetto di metadati | Metadati relativi ai data . |
Metadati
attributi
nome | genere | descrizione |
---|---|---|
count | int | Il numero di oggetti nei data . |
File
Il tipo di dati del file
è visibile in tutta l'API, in quanto è un riferimento a un file che può essere scaricato dall'API attraverso un poll di tipo di files
.
attributi
nome | genere | descrizione |
---|---|---|
file_id | corda | Identificatore utilizzato per richiedere il file dall'API. Si garantisce che il valore sia univoco solo nell'ambito dell'origine corrente. |
type | stringa, sempre file | Identificatore del tipo di dati. |
name | corda | Il nome del file, esclusa l'estensione. |
extension | stringa, facoltativo | L'estensione del file, se disponibile. |
mime_type | stringa, facoltativo | Il tipo MIME del file, se disponibile. |
size | int, facoltativo | La dimensione del file, se disponibile. |
checksum | stringa, facoltativo | Il checksum md5 se disponibile. |
Esempio
{ "file_id": "abc123", "type": "file", "name": "IMG_0003", "extension": "jpg", "mime_type": "image/jpeg", "size": 2505426, }
Immagine
Estende il file .
nome | genere | descrizione |
---|---|---|
file_id | corda | Identificatore utilizzato per richiedere il file dall'API. Si garantisce che il valore sia univoco solo nell'ambito dell'origine corrente. |
type | corda | Sempre image . |
filename | corda | Il nome file originale del file. L'estensione in questo nome file deve corrispondere all'estensione del file. |
file_path | corda | Il percorso del file relativo ad altri file all'interno del suo servizio. Ad esempio, il percorso all'interno di un backup. |
width | int, facoltativo | La larghezza del file, se disponibile. |
height | int, facoltativo | L'altezza del file, se disponibile. |
Esempio
{ "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, }
video
Estende il file .
nome | genere | descrizione |
---|---|---|
file_id | corda | Identificatore utilizzato per richiedere il file dall'API. Si garantisce che il valore sia univoco solo nell'ambito dell'origine corrente. |
type | corda | Sempre video . |
filename | corda | Il nome file originale del file. L'estensione in questo nome file deve corrispondere all'estensione del file. |
file_path | corda | Il percorso del file relativo ad altri file all'interno del suo servizio. Ad esempio, il percorso all'interno di un backup. |
width | int, facoltativo | La larghezza del file, se disponibile. |
height | int, facoltativo | L'altezza del file, se disponibile. |
duration | int, facoltativo | La durata del video, se disponibile. |
Esempio
{ "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 }
video
Estende il file .
nome | genere | descrizione |
---|---|---|
file_id | corda | Identificatore utilizzato per richiedere il file dall'API. Si garantisce che il valore sia univoco solo nell'ambito dell'origine corrente. |
type | corda | Sempre audio . |
filename | corda | Il nome file originale del file. L'estensione in questo nome file deve corrispondere all'estensione del file. |
file_path | corda | Il percorso del file relativo ad altri file all'interno del suo servizio. Ad esempio, il percorso all'interno di un backup. |
transcription | stringa, opzionale | La trascrizione testuale di un messaggio audio, se disponibile. |
Esempio
{ "id": "abc123", "type": "audio", "filename": "Audio Message.caf", "file_path": "Library/SMS/Attachments/.../Audio Message.caf", "transcription": "Test voice message", }
Trascrizioni audio
Quando disponibile nei dati di un backup, la trascrizione dei messaggi audio viene restituita come parte dell'oggetto audio
. Questo è disponibile sui messaggi audio creati in Messaggi iOS a partire da iOS 17.
Messaggio
attributi
nome | genere | descrizione |
---|---|---|
id | corda | Un identificatore univoco per il messaggio. Utilizzare questo per deduplicare i dati restituiti, se necessario. |
data_type | stringa, sempre message | Identificatore del tipo di dati. |
type | stringa, facoltativo | Utilizzato quando un servizio di messaggistica gestisce una varietà di tipi di messaggi. Ad esempio SMS e iMessage nel caso di Messaggi iOS. |
handle | corda | La seconda parte della conversazione, spesso un identificatore univoco dell'app di messaggistica. |
handle_name | stringa, facoltativo | Se disponibile, un nome visualizzato per l'handle. |
contact | contatto nidificato, facoltativo | Un oggetto che fa riferimento a un contatto iOS della seconda parte della conversazione. |
conversation_id | corda | Identificatore che raggruppa i messaggi per conversazione. |
from_me | bool | Se il messaggio è stato inviato o ricevuto. |
user | stringa, facoltativo | L'utente dell'app di messaggistica nel caso in cui più utenti/account utilizzino un'app di messaggistica dal dispositivo. |
text | corda | Il corpo del messaggio. |
edits | elenco di modifiche, facoltativo | Un elenco di modifiche al contenuto dei messaggi, per le app in cui è supportata la modifica dei messaggi e la cronologia è conservata nei backup. |
attachments | elenco di file, facoltativo | Un array di valori file_id che possono essere utilizzati con il metodo download_file . Se il messaggio non include allegati, viene restituito un array vuoto. |
group | stringa, facoltativo | Il nome del gruppo al momento dell'invio del messaggio . |
group_id | stringa, facoltativo | L'identificatore univoco per il gruppo nel contesto dell'app. Potrebbe non essere un numero intero e, se presente, fornisce solo informazioni oltre a conversation_id . |
group_handles | elenco di stringhe, facoltativo | Questo valore è null per i messaggi da persona a persona e nelle conversazioni di gruppo è un array di stringhe che rappresentano numeri di telefono o indirizzi e-mail iMessage. |
group_contacts | stringa, facoltativo | Un array di oggetti che fanno riferimento ai contatti iOS nel gruppo. |
deleted | bool, facoltativo | Un valore booleano per indicare se il messaggio è stato eliminato. |
marked_unread | bool, facoltativo | Se l'utente ha contrassegnato il messaggio come non letto, se disponibile. |
date | appuntamento | Quando il messaggio è stato inviato o ricevuto. |
date_read | data/ora, facoltativo | Quando un messaggio è stato letto per la prima volta, se disponibile. |
date_edited | data e ora, facoltativo | Quando un messaggio è stato modificato l'ultima volta, se applicabile. |
date_deleted | data e ora, facoltativo | Quando un messaggio è stato eliminato, se applicabile. |
Esempio
{ "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" }
Maniglie di messaggi e conversazioni
Gli estrattori di dati dell'API supportano una gamma storicamente ampia di dati di origine e cercheranno di riallineare i dati che sono diventati frammentati attraverso gli aggiornamenti di app e iOS nel tempo. Poiché le app di messaggistica aggiungono nuove funzionalità, non sono sempre attente a garantire che i dati sottostanti vengano migrati perfettamente alla nuova struttura. Pertanto, l'API deve dedurre determinate informazioni per restituire dati coerenti.
Uno di questi casi riguarda gli handle e le informazioni sulle conversazioni restituite dalle app di messaggistica e, in particolare, dal modulo di dati ios_messages.messages
. L'API popolerà conversation_id
con un identificatore numerico, se tali informazioni esistono o possono essere dedotte, o eseguirà il fallback per utilizzare l'handle della seconda parte per impostare conversation_id
. Pertanto, si consiglia di utilizzare questo campo per unire i messaggi della stessa chat.
Messaggi modificati ed eliminati
Le informazioni sui messaggi modificati ed eliminati sono disponibili per ios_messages.messages
per i backup effettuati da dispositivi con iOS 16 e versioni successive. Per i messaggi eliminati, le informazioni dovrebbero essere disponibili solo mentre il messaggio è ancora recuperabile nel momento in cui è stato effettuato il backup, che secondo Apple è 30-40 giorni dopo l'eliminazione .
Per i messaggi modificati, la cronologia delle modifiche viene restituita nell'attributo edits
. Ogni modifica include lo stato del text
e l'ora in cui è stata confermata la modifica. L'attributo text
del messaggio stesso sarà sempre lo stesso di quello della modifica finale.
Conversazione
Un thread di conversazione.
nome | genere | descrizione |
---|---|---|
id | corda | Numero identificativo dell'oggetto. |
data_type | stringa, sempre conversation | ID del tipo di dati dell'articolo. |
group | stringa facoltativa | Nome del gruppo. |
members | elenco degli elementi di contact | Partecipanti alla conversazione. |
Contatto
attributi di contact
nome | genere | descrizione |
---|---|---|
id | corda | Numero identificativo dell'oggetto. |
data_type | stringa, contact sempre | ID del tipo di dati dell'articolo. |
name | stringa facoltativa | Il nome completo del contatto. |
first_name | stringa facoltativa | Il nome del contatto. |
middle_name | stringa facoltativa | Il secondo nome del contatto. |
last_name | stringa facoltativa | Il cognome del contatto. |
prefix | stringa facoltativa | Il prefisso del nome del contatto. |
suffix | stringa facoltativa | Il suffisso del nome del contatto. |
nickname | stringa facoltativa | Il nickname del contatto. |
records | elenco di elementi contact.record | Record di contatto associati al contatto. |
organisation | stringa facoltativa | Il nome dell'organizzazione del contatto. |
department | stringa facoltativa | Il dipartimento del contatto all'interno dell'organizzazione. |
jobtitle | stringa facoltativa | Il titolo professionale del contatto all'interno dell'organizzazione. |
birthday | data facoltativa | Il compleanno del contatto. |
attributo contact.record
Esistono 5 tipi di voci del record di contatto: Phone
, e Email
, URL
, Social
e Address
. Corrispondono rispettivamente a un numero di telefono, indirizzo e-mail, URL del sito Web, gestione dell'account sui social media e indirizzo.
I primi 4 hanno gli stessi attributi:
nome | genere | descrizione |
---|---|---|
type | corda | Uno tra: Phone , Email , URL , Social . |
name | stringa facoltativa | L'etichetta associata al record. |
value | corda | Il valore del record. |
Il tipo di record del contatto Address
ha campi indirizzo aggiuntivi:
nome | genere | descrizione |
---|---|---|
type | stringa, sempre Address | Un registro del numero di telefono. |
name | stringa facoltativa | L'etichetta associata al numero. |
CountryCode | stringa facoltativa | Un codice paese. |
Country | stringa facoltativa | Un nome di paese. |
ZIP | stringa facoltativa | Un CAP o codice postale. |
State | stringa facoltativa | Un nome di stato o un'abbreviazione. |
City | stringa facoltativa | Un nome di città. |
Municipality | stringa facoltativa | Un nome di comune. |
SubLocality | stringa facoltativa | Il nome di un quartiere o di una zona. |
Street | stringa facoltativa | Un nome di indirizzo stradale. |
Dati di esempio
{ "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" }
Chiamata
attributi
nome | genere | descrizione |
---|---|---|
id | corda | Numero identificativo dell'oggetto. |
data_type | stringa, call sempre | ID del tipo di dati dell'articolo. |
call_type | corda | Uno di: Phone , FaceTime Video FaceTime Audio . |
address | corda | L'obiettivo della chiamata. Potrebbe essere un numero di telefono, un ID Apple o un altro identificatore. |
duration | galleggiante | La durata della chiamata. |
answered | bool | Se la chiamata ha ricevuto risposta. |
from_me | bool | Se la chiamata era in uscita o in arrivo. |
date | appuntamento | Quando è stata effettuata la chiamata. |
Dati di esempio
{ "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" }
Evento
attributi event
nome | genere | descrizione |
---|---|---|
id | corda | Numero identificativo dell'oggetto. |
data_type | stringa, sempre event | ID del tipo di dati dell'articolo. |
unique_identifier | stringa facoltativa | UID elemento per la deduplicazione su più origini dati evento. |
calendar | stringa facoltativa | Nome del calendario. |
calendar_uid | stringa facoltativa | ID calendario. |
calendar_store | stringa facoltativa | Tipo di archivio del calendario, ovvero iCloud , Default . |
summary | stringa facoltativa | Il riepilogo o il titolo dell'evento. |
description | stringa facoltativa | La descrizione dell'evento. |
start_date | facoltativo datetime | Quando inizia l'evento. |
end_date | facoltativo datetime | Quando l'evento finisce. |
start_time_zone | stringa facoltativa | Il fuso orario di start_date . |
end_time_zone | stringa facoltativa | L'ora di end_date . |
all_day | booleano | Se l'evento dura un'intera giornata. |
travel_time | durata facoltativa | La durata del viaggio dell'evento. |
recurrence | facoltativo evento nidificato event.recurrence | Le impostazioni di ricorrenza dell'evento. |
location | stringa facoltativa | Dove si svolge l'evento. |
start_location | stringa facoltativa | Da dove parte l'evento. |
attendees | elenco facoltativo di stringhe | Nomi dei partecipanti all'evento. |
attached_url | stringa facoltativa | Un URL associato all'evento. |
creation_date | facoltativo datetime | Quando è stato creato l'evento. Non impostato se è una voce di calendario predefinita, come i giorni festivi. |
attributi event.recurrence
nome | genere | descrizione |
---|---|---|
interval | numero intero | Il numero di repeat a cui ricorrere, ovvero 1 Annuale (una volta ogni 1 anno). |
repeat | corda | Uno tra: OneTime , Daily , Weekly , Monthly , Yearly . |
repeat_end_date | facoltativo datetime | Quando smettere di ricorrere. |
Dati di esempio
{ "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 }
Nota
{ "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" }
Visitare
Un record di una visita alla pagina Web.
attributi
nome | genere | descrizione |
---|---|---|
data_type | string, visit sempre | ID del tipo di dati dell'articolo. |
url | corda | L'URL della pagina visitata. |
title | corda | Il titolo della pagina visitata. |
date_created | appuntamento | Quando è avvenuta la visita. |
{ "data_type": "visit", "url": "https://reincubate.com/", "title": "Reincubate: the app data company", "date_created": "2020-01-01T00:00:00.000000Z" }
biscotto
Un cookie HTTP
attributi
nome | genere | descrizione |
---|---|---|
data_type | stringa, sempre cookie | ID del tipo di dati dell'articolo. |
name | corda | Il nome del biscotto. |
value | corda | Il valore del cookie. |
domain | corda | L'identificatore di dominio del cookie. |
path | corda | L'identificatore di percorso del cookie. |
flags | corda | Eventuali flag impostati sul cookie. |
creation_date | appuntamento | Quando il cookie è stato creato. |
expiry_date | appuntamento | Quando il cookie scade. |
{ "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" }
Posizione
Attributi di dati
nome | genere | descrizione |
---|---|---|
data_type | stringa, sempre location | Un identificatore del tipo di dati. |
latitude | galleggiante | La coordinata di latitudine della posizione. |
longitude | galleggiante | La coordinata di longitudine della posizione. |
altitude | galleggiante | Le coordinate di altitudine della posizione. |
horizontal_accuracy | galleggiante | La precisione orizzontale per la misurazione. |
vertical_accuracy | galleggiante | La precisione verticale per la misurazione. |
position_type | corda | Identificatore del metodo di misurazione utilizzato. |
date_created | appuntamento | Quando è stata effettuata la misurazione. |
Dati di esempio
{ "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" }