Tipos de datos
Los resultados devueltos para encuestas de tipo de data
contra la API devolverán información en uno de los formatos que se describen a continuación.
Resultado de la carga útil
Atributos
La estructura raíz de la carga útil de datos JSON tiene los siguientes atributos.
nombre | escribe | descripción |
---|---|---|
data | lista de objetos de datos | Los datos recuperados de la fuente. |
metadata | objeto de metadatos | Metadatos relacionados con los data . |
Metadatos
Atributos
nombre | escribe | descripción |
---|---|---|
count | En t | El número de objetos en data . |
Expediente
El tipo de datos del file
se ve a lo largo de la API, ya que es una referencia a un archivo que se puede descargar desde la API a través de una encuesta de tipo de files
.
Atributos
nombre | escribe | descripción |
---|---|---|
file_id | cadena | Identificador utilizado para solicitar el archivo desde la API. Solo se garantiza que el valor será único en el alcance de la fuente actual. |
type | cadena, siempre file | Especificador de tipo de datos. |
name | cuerda | El nombre del archivo, excluyendo la extensión. |
extension | cadena, opcional | La extensión del archivo si está disponible. |
mime_type | cadena, opcional | El tipo MIME del archivo, si está disponible. |
size | int, opcional | El tamaño del archivo si está disponible. |
checksum | cadena, opcional | La suma de comprobación md5 si está disponible. |
Ejemplo
{ "file_id": "abc123", "type": "file", "name": "IMG_0003", "extension": "jpg", "mime_type": "image/jpeg", "size": 2505426, }
Imagen
Extiende el archivo .
nombre | escribe | descripción |
---|---|---|
file_id | cadena | Identificador utilizado para solicitar el archivo desde la API. Solo se garantiza que el valor será único en el alcance de la fuente actual. |
type | cadena | Siempre image . |
filename | cuerda | El nombre de archivo original del archivo. La extensión en este nombre de archivo debe coincidir con la extensión del archivo. |
file_path | cadena | La ruta del archivo en relación con otros archivos dentro de su servicio. Por ejemplo, la ruta dentro de una copia de seguridad. |
width | int, opcional | El ancho del archivo si está disponible. |
height | int, opcional | La altura del archivo si está disponible. |
Ejemplo
{ "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, }
Vídeo
Extiende el archivo .
nombre | escribe | descripción |
---|---|---|
file_id | cadena | Identificador utilizado para solicitar el archivo desde la API. Solo se garantiza que el valor será único en el alcance de la fuente actual. |
type | cadena | video siempre. |
filename | cuerda | El nombre de archivo original del archivo. La extensión en este nombre de archivo debe coincidir con la extensión del archivo. |
file_path | cadena | La ruta del archivo en relación con otros archivos dentro de su servicio. Por ejemplo, la ruta dentro de una copia de seguridad. |
width | int, opcional | El ancho del archivo si está disponible. |
height | int, opcional | La altura del archivo si está disponible. |
duration | int, opcional | La duración del video si está disponible. |
Ejemplo
{ "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
Extiende el archivo .
nombre | escribe | descripción |
---|---|---|
file_id | cadena | Identificador utilizado para solicitar el archivo desde la API. Solo se garantiza que el valor será único en el alcance de la fuente actual. |
type | cadena | Siempre audio . |
filename | cuerda | El nombre de archivo original del archivo. La extensión en este nombre de archivo debe coincidir con la extensión del archivo. |
file_path | cadena | La ruta del archivo en relación con otros archivos dentro de su servicio. Por ejemplo, la ruta dentro de una copia de seguridad. |
transcription | cadena, opcional | La transcripción de texto de un mensaje de audio, si está disponible. |
Ejemplo
{ "id": "abc123", "type": "audio", "filename": "Audio Message.caf", "file_path": "Library/SMS/Attachments/.../Audio Message.caf", "transcription": "Test voice message", }
Transcripciones de audio
Cuando está disponible en los datos de una copia de seguridad, la transcripción de mensajes de audio se devuelve como parte del objeto audio
. Esto está disponible en mensajes de audio realizados en Mensajes de iOS desde iOS 17.
Mensaje
Atributos
nombre | escribe | descripción |
---|---|---|
id | cuerda | Un identificador único para el mensaje. Use esto para deduplicar los datos devueltos si es necesario. |
data_type | cadena, siempre message | Especificador de tipo de datos. |
type | cadena, opcional | Se usa cuando un servicio de mensajería maneja una variedad de tipos de mensajes. Por ejemplo SMS e iMessage en el caso de iOS Messages. |
handle | cadena | La segunda parte de la conversación, a menudo un identificador exclusivo de la aplicación de mensajería. |
handle_name | cadena, opcional | Cuando esté disponible, un nombre para mostrar para el identificador. |
contact | contacto anidado, opcional | Un objeto que hace referencia a un contacto iOS de la segunda parte de la conversación. |
conversation_id | cuerda | Identificador que agrupa los mensajes por conversación. |
from_me | bool | Si el mensaje fue enviado o recibido. |
user | cadena, opcional | El usuario de la aplicación de mensajería en el caso de que varios usuarios/cuentas puedan estar usando una aplicación de mensajería desde el dispositivo. |
text | cuerda | El cuerpo del mensaje. |
edits | lista de ediciones, opcional | Una lista de ediciones de contenido de mensajes, para aplicaciones en las que se admite la edición de mensajes y el historial se mantiene en las copias de seguridad. |
attachments | lista de archivos, opcional | Una matriz de valores de file_id que se pueden usar con el método download_file . Si el mensaje no incluye datos adjuntos, se devuelve una matriz vacía. |
group | cadena, opcional | El nombre del grupo en el momento en que se envió el mensaje . |
group_id | cadena, opcional | El identificador único del grupo dentro del contexto de esa aplicación. Es posible que no sea un número entero y, si está presente, solo brinda información además de conversation_id . |
group_handles | lista de cadenas, opcional | Este valor es null para los mensajes de persona a persona, y en las conversaciones grupales es una matriz de cadenas que representan números de teléfono o direcciones de correo electrónico de iMessage. |
group_contacts | cadena, opcional | Una matriz de objetos que hacen referencia a los contactos de iOS en el grupo. |
deleted | booleano, opcional | Un valor booleano para indicar si el mensaje se ha eliminado. |
marked_unread | booleano, opcional | Si el usuario marcó el mensaje como no leído, si está disponible. |
date | fecha y hora | Cuándo se envió o recibió el mensaje. |
date_read | fecha y hora, opcional | Cuándo se leyó un mensaje por primera vez, si está disponible. |
date_edited | fecha y hora, opcional | Cuándo se editó un mensaje por última vez, si corresponde. |
date_deleted | fecha y hora, opcional | Cuándo se eliminó un mensaje, si corresponde. |
Ejemplo
{ "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" }
Manejadores de mensajes y conversaciones
Los extractores de datos de la API admiten una variedad históricamente amplia de datos de origen e intentarán realinear los datos que se han fragmentado a través de las actualizaciones de aplicaciones e iOS a lo largo del tiempo. A medida que las aplicaciones de mensajería agregan nuevas funciones, no siempre tienen cuidado de garantizar que los datos subyacentes se migren perfectamente a la nueva estructura. Por lo tanto, la API debe inferir cierta información para devolver datos coherentes.
Uno de estos casos es el de los identificadores y la información de conversación que devuelven las aplicaciones de mensajería y, más específicamente, el módulo de datos ios_messages.messages
. La API completará conversation_id
con un identificador numérico, si dicha información existe o se puede inferir, o recurre a usar el identificador de la segunda parte para establecer conversation_id
. Por lo tanto, se recomienda usar este campo para vincular mensajes del mismo chat.
Mensajes editados y eliminados
La información sobre los mensajes editados y eliminados está disponible para ios_messages.messages
para copias de seguridad realizadas desde dispositivos con iOS 16 y versiones posteriores. En el caso de los mensajes eliminados, solo se espera que la información esté disponible mientras el mensaje aún se pueda recuperar en el momento en que se realizó la copia de seguridad, que según Apple es de 30 a 40 días después de la eliminación .
Para los mensajes editados, el historial de ediciones se devuelve en el atributo edits
. Cada edición incluye el estado del text
y la hora en que se confirmó la edición. El atributo de text
del mensaje en sí siempre será el mismo que el de la edición final.
Conversacion
Un hilo de conversación.
nombre | escribe | descripción |
---|---|---|
id | cuerda | Identificación del artículo. |
data_type | cadena, siempre conversation | ID del tipo de datos del elemento. |
group | cadena opcional | Nombre del grupo. |
members | lista de elementos de contact | Participantes en la conversación. |
Contacto
atributos de contact
nombre | escribe | descripción |
---|---|---|
id | cuerda | Identificación del artículo. |
data_type | cadena, siempre contact | ID del tipo de datos del elemento. |
name | cadena opcional | El nombre completo del contacto. |
first_name | cadena opcional | El nombre del contacto. |
middle_name | cadena opcional | El segundo nombre del contacto. |
last_name | cadena opcional | El apellido del contacto. |
prefix | cadena opcional | El prefijo del nombre del contacto. |
suffix | cadena opcional | Sufijo del nombre del contacto. |
nickname | cadena opcional | El apodo del contacto. |
records | lista de elementos de contact.record | Registros de contacto asociados con el contacto. |
organisation | cadena opcional | El nombre de la organización del contacto. |
department | cadena opcional | El departamento del contacto dentro de la organización. |
jobtitle | cadena opcional | El cargo del contacto dentro de la organización. |
birthday | fecha opcional | El cumpleaños del contacto. |
atributo contact.record
Hay 5 tipos de elementos de registro de contacto: Phone
, Email
, URL
, URL
Social
y Address
. Corresponden a un número de teléfono, dirección de correo electrónico, URL del sitio web, identificador de cuenta de redes sociales y dirección, respectivamente.
Los primeros 4 tienen los mismos atributos:
nombre | escribe | descripción |
---|---|---|
type | cuerda | Uno de: Phone , Email , URL , redes Social . |
name | cadena opcional | La etiqueta asociada con el registro. |
value | cuerda | El valor del registro. |
El tipo de registro de contacto Address
tiene campos de dirección adicionales:
nombre | escribe | descripción |
---|---|---|
type | cadena, siempre Address | Un registro de número de teléfono. |
name | cadena opcional | La etiqueta asociada con el número. |
CountryCode | cadena opcional | Un código de país. |
Country | cadena opcional | Un nombre de país. |
ZIP | cadena opcional | Un código postal o postal. |
State | cadena opcional | Un nombre de estado o abreviatura. |
City | cadena opcional | Un nombre de ciudad. |
Municipality | cadena opcional | Un nombre de municipio. |
SubLocality | cadena opcional | Un nombre de barrio o área. |
Street | cadena opcional | Un nombre de dirección de calle. |
Data de muestra
{ "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" }
Llamada
Atributos
nombre | escribe | descripción |
---|---|---|
id | cuerda | Identificación del artículo. |
data_type | cadena, siempre call | ID del tipo de datos del elemento. |
call_type | cuerda | Uno de: Phone , FaceTime Video FaceTime Audio . |
address | cuerda | El objetivo de la llamada. Podría ser un número de teléfono, ID de Apple u otro identificador. |
duration | flotar | La duración de la llamada. |
answered | bool | Si la llamada fue respondida. |
from_me | bool | Si la llamada era saliente o entrante. |
date | fecha y hora | Cuando se hizo la llamada. |
Data de muestra
{ "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
atributos de event
nombre | escribe | descripción |
---|---|---|
id | cuerda | Identificación del artículo. |
data_type | cadena, siempre event | ID del tipo de datos del elemento. |
unique_identifier | cadena opcional | UID de elemento para la deduplicación en múltiples orígenes de datos de eventos. |
calendar | cadena opcional | Nombre del calendario. |
calendar_uid | cadena opcional | UID del calendario. |
calendar_store | cadena opcional | Tipo de tienda de calendario, es decir, iCloud , Default . |
summary | cadena opcional | El resumen o título del evento. |
description | cadena opcional | La descripción del evento. |
start_date | fecha y hora opcional | Cuando comienza el evento. |
end_date | fecha y hora opcional | Cuando termine el evento. |
start_time_zone | cadena opcional | La zona horaria de start_date . |
end_time_zone | cadena opcional | La hora uno de end_date . |
all_day | booleano | Si el evento dura un día entero. |
travel_time | duración opcional | La duración del tiempo de viaje del evento. |
recurrence | event.recurrence anidado opcional | La configuración de recurrencia del evento. |
location | cadena opcional | Donde se lleva a cabo el evento. |
start_location | cadena opcional | Dónde comienza el evento. |
attendees | lista opcional de cadenas | Nombres de los asistentes al evento. |
attached_url | cadena opcional | Una URL asociada con el evento. |
creation_date | fecha y hora opcional | Cuándo se creó el evento. No se establece si se trata de una entrada de calendario predeterminada, como días festivos. |
atributos de event.recurrence
nombre | escribe | descripción |
---|---|---|
interval | entero | El conteo de repeat a recurrencia, es decir, 1 anual (una vez cada 1 año). |
repeat | cuerda | Uno de: OneTime , Daily , Weekly , Monthly , Yearly . |
repeat_end_date | fecha y hora opcional | Cuándo dejar de repetirse. |
Data de muestra
{ "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" }
Visitar
Un registro de una visita a la página del sitio web.
Atributos
nombre | escribe | descripción |
---|---|---|
data_type | cadena, siempre visit | ID del tipo de datos del elemento. |
url | cuerda | La URL de la página visitada. |
title | cuerda | El título de la página visitada. |
date_created | fecha y hora | Cuándo se produjo la visita. |
{ "data_type": "visit", "url": "https://reincubate.com/", "title": "Reincubate: the app data company", "date_created": "2020-01-01T00:00:00.000000Z" }
Galleta
Una cookie HTTP.
Atributos
nombre | escribe | descripción |
---|---|---|
data_type | cadena, siempre cookie | ID del tipo de datos del elemento. |
name | cuerda | El nombre de la galleta. |
value | cuerda | El valor de la galleta. |
domain | cuerda | El especificador de dominio de la cookie. |
path | cuerda | El especificador de ruta de la cookie. |
flags | cuerda | Cualquier marca establecida en la cookie. |
creation_date | fecha y hora | Cuándo se creó la cookie. |
expiry_date | fecha y hora | Cuando la cookie caduca. |
{ "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" }
Ubicación
Atributos de datos
nombre | escribe | descripción |
---|---|---|
data_type | cadena, siempre location | Un identificador de tipo de datos. |
latitude | flotar | La coordenada de latitud de la ubicación. |
longitude | flotar | La coordenada de longitud de la ubicación. |
altitude | flotar | La coordenada de altitud de la ubicación. |
horizontal_accuracy | flotar | La precisión horizontal para la medición. |
vertical_accuracy | flotar | La precisión vertical para la medición. |
position_type | cuerda | Identificador del método de medición utilizado. |
date_created | fecha y hora | Cuándo se realizó la medición. |
Data de muestra
{ "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" }