Types de données
Les résultats renvoyés pour data
interrogations de type de data
sur l'API renverront des informations dans l'un des formats décrits ci-dessous.
Charge utile du résultat
Les attributs
La structure racine de la charge utile JSON de données a les attributs suivants.
Nom | taper | la description |
---|---|---|
data | liste des objets de données | Les données extraites de la source. |
metadata | objet de métadonnées | Métadonnées liées aux data . |
Métadonnées
Les attributs
Nom | taper | la description |
---|---|---|
count | entier | Le nombre d'objets dans data . |
Fichier
Le type de données de file
est visible dans l’API, car il s’agit d’une référence à un fichier pouvant être téléchargé à partir de l’API via un sondage de type de files
.
Les attributs
Nom | taper | la description |
---|---|---|
file_id | chaîne | Identifiant utilisé pour demander le fichier à l'API. La valeur est uniquement garantie comme étant unique dans la portée de la source actuelle. |
type | chaîne, toujours file | Spécificateur de type de données. |
name | chaîne | Le nom du fichier, à l'exclusion de l'extension. |
extension | chaîne, facultatif | L'extension du fichier si disponible. |
mime_type | chaîne, facultatif | Le type MIME du fichier, s'il est disponible. |
size | entier, facultatif | La taille du fichier si disponible. |
checksum | chaîne, facultatif | La somme de contrôle md5 si disponible. |
Exemple
{ "file_id": "abc123", "type": "file", "name": "IMG_0003", "extension": "jpg", "mime_type": "image/jpeg", "size": 2505426, }
Image
Prolonge le fichier .
Nom | taper | la description |
---|---|---|
file_id | chaîne | Identifiant utilisé pour demander le fichier à l'API. La valeur est uniquement garantie comme étant unique dans la portée de la source actuelle. |
type | chaîne | Toujours image . |
filename | chaîne | Le nom de fichier d'origine du fichier. L'extension de ce nom de fichier doit correspondre à l'extension du fichier. |
file_path | chaîne | Le chemin du fichier par rapport aux autres fichiers de son service. Par exemple, le chemin dans une sauvegarde. |
width | entier, facultatif | La largeur du fichier si disponible. |
height | entier, facultatif | La hauteur du fichier si disponible. |
Exemple
{ "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, }
Vidéo
Prolonge le fichier .
Nom | taper | la description |
---|---|---|
file_id | chaîne | Identifiant utilisé pour demander le fichier à l'API. La valeur est uniquement garantie comme étant unique dans la portée de la source actuelle. |
type | chaîne | Toujours video . |
filename | chaîne | Le nom de fichier d'origine du fichier. L'extension de ce nom de fichier doit correspondre à l'extension du fichier. |
file_path | chaîne | Le chemin du fichier par rapport aux autres fichiers de son service. Par exemple, le chemin dans une sauvegarde. |
width | entier, facultatif | La largeur du fichier si disponible. |
height | entier, facultatif | La hauteur du fichier si disponible. |
duration | entier, facultatif | La durée de la vidéo si disponible. |
Exemple
{ "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 }
Vidéo
Prolonge le fichier .
Nom | taper | la description |
---|---|---|
file_id | chaîne | Identifiant utilisé pour demander le fichier à l'API. La valeur est uniquement garantie comme étant unique dans la portée de la source actuelle. |
type | chaîne | Toujours audio . |
filename | chaîne | Le nom de fichier d'origine du fichier. L'extension de ce nom de fichier doit correspondre à l'extension du fichier. |
file_path | chaîne | Le chemin du fichier par rapport aux autres fichiers de son service. Par exemple, le chemin dans une sauvegarde. |
transcription | chaîne, facultatif | La transcription textuelle d'un message audio, si disponible. |
Exemple
{ "id": "abc123", "type": "audio", "filename": "Audio Message.caf", "file_path": "Library/SMS/Attachments/.../Audio Message.caf", "transcription": "Test voice message", }
Transcriptions audio
Lorsqu'elle est disponible dans les données d'une sauvegarde, la transcription des messages audio est renvoyée dans le cadre de l'objet audio
. Ceci est disponible sur les messages audio créés dans iOS Messages depuis iOS 17.
Message
Les attributs
Nom | taper | la description |
---|---|---|
id | chaîne | Un identifiant unique pour le message. Utilisez-le pour dédupliquer les données renvoyées si nécessaire. |
data_type | chaîne, toujours message | Spécificateur de type de données. |
type | chaîne, facultatif | Utilisé lorsqu'un service de messagerie gère une variété de types de messages. Par exemple SMS et iMessage dans le cas des messages iOS. |
handle | chaîne | La deuxième partie de la conversation, souvent un identifiant unique à l'application de messagerie. |
handle_name | chaîne, facultatif | Le cas échéant, un nom d'affichage pour la poignée. |
contact | contact imbriqué, facultatif | Un objet faisant référence à un contact iOS de la 2ème partie de la conversation. |
conversation_id | chaîne | Identifiant regroupant les messages par conversation. |
from_me | bourdonner | Si le message a été envoyé ou reçu. |
user | chaîne, facultatif | L'utilisateur de l'application de messagerie dans le cas où plusieurs utilisateurs/comptes peuvent utiliser une application de messagerie à partir de l'appareil. |
text | chaîne | Le corps du message. |
edits | liste des modifications, facultative | Une liste des modifications du contenu des messages, pour les applications où la modification des messages est prise en charge et l'historique est conservé dans les sauvegardes. |
attachments | liste des fichiers, facultatif | Un tableau de valeurs file_id pouvant être utilisées avec la méthode download_file . Si le message ne contient aucune pièce jointe, un tableau vide est renvoyé. |
group | chaîne, facultatif | Le nom du groupe au moment où le message a été envoyé . |
group_id | chaîne, facultatif | L'identifiant unique du groupe dans le contexte de cette application. Il ne peut pas s'agir d'un nombre entier et, s'il est présent, ne fournit que des informations en plus de conversation_id . |
group_handles | liste de chaînes, facultatif | Cette valeur est null pour les messages de personne à personne et, dans les conversations de groupe, il s'agit d'un tableau de chaînes représentant des numéros de téléphone ou des adresses e-mail iMessage. |
group_contacts | chaîne, facultatif | Un tableau d'objets faisant référence aux contacts iOS du groupe. |
deleted | booléen, facultatif | Une valeur booléenne pour indiquer si le message a été supprimé. |
marked_unread | booléen, facultatif | Indique si l'utilisateur a marqué le message comme non lu, si disponible. |
date | date-heure | Quand le message a été envoyé ou reçu. |
date_read | dateheure, facultatif | Quand un message a été lu pour la première fois, si disponible. |
date_edited | dateheure, facultatif | Quand un message a été modifié pour la dernière fois, le cas échéant. |
date_deleted | dateheure, facultatif | Lorsqu'un message a été supprimé, le cas échéant. |
Exemple
{ "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" }
Poignées de message et conversations
Les extracteurs de données de l'API prennent en charge une gamme historiquement large de données source et tenteront de réaligner les données qui se sont fragmentées via les mises à jour d'applications et d'iOS au fil du temps. Au fur et à mesure que les applications de messagerie ajoutent de nouvelles fonctionnalités, elles ne veillent pas toujours à ce que les données sous-jacentes soient parfaitement migrées vers la nouvelle structure. Par conséquent, l'API doit déduire certaines informations afin de renvoyer des données cohérentes.
Un tel cas concerne les poignées et les informations de conversation renvoyées par les applications de messagerie, et plus particulièrement le module de données ios_messages.messages
. L'API remplira conversation_id
avec un identifiant numérique, si de telles informations existent ou peuvent être déduites, ou se repliera pour utiliser le handle de la seconde partie pour définir conversation_id
. Par conséquent, il est recommandé d'utiliser ce champ pour lier les messages d'un même chat.
Messages modifiés et supprimés
Les informations sur les messages modifiés et supprimés sont disponibles pour ios_messages.messages
pour les sauvegardes effectuées à partir d'appareils exécutant iOS 16 et versions ultérieures. Pour les messages supprimés, les informations ne devraient être disponibles que pendant que le message est encore récupérable au moment où la sauvegarde a été effectuée, ce qui, selon Apple, est de 30 à 40 jours après la suppression .
Pour les messages modifiés, l'historique des modifications est renvoyé dans l'attribut edits
. Chaque modification inclut l'état du text
et l'heure à laquelle la modification a été validée. L'attribut text
du message lui-même sera toujours le même que celui de la modification finale.
Conversation
Un fil de conversation.
Nom | taper | la description |
---|---|---|
id | chaîne de caractères | ID de l'article. |
data_type | chaîne, toujours conversation | ID du type de données de l'élément. |
group | chaîne facultative | Nom du groupe. |
members | liste des éléments de contact | Participants à la conversation. |
Contact
attributs de contact
Nom | taper | la description |
---|---|---|
id | chaîne de caractères | ID de l'article. |
data_type | chaîne, toujours contact | ID du type de données de l'élément. |
name | chaîne facultative | Nom complet du contact. |
first_name | chaîne facultative | Le prénom du contact. |
middle_name | chaîne facultative | Le deuxième prénom du contact. |
last_name | chaîne facultative | Le nom de famille du contact. |
prefix | chaîne facultative | Préfixe du nom du contact. |
suffix | chaîne facultative | Suffixe du nom du contact. |
nickname | chaîne facultative | Le surnom du contact. |
records | liste des éléments contact.record | Enregistrements de contact associés au contact. |
organisation | chaîne facultative | Le nom de l'organisation du contact. |
department | chaîne facultative | Le service du contact au sein de l'organisation. |
jobtitle | chaîne facultative | Intitulé du poste du contact au sein de l'organisation. |
birthday | date facultative | L'anniversaire du contact. |
attribut contact.record
Il existe 5 types d'éléments d'enregistrement de contact: Phone
, Email
- Email
, URL
, Social
et Address
. Ils correspondent respectivement à un numéro de téléphone, une adresse e-mail, une URL de site Web, un identifiant de compte de réseau social et une adresse.
Les 4 premiers ont les mêmes attributs:
Nom | taper | la description |
---|---|---|
type | chaîne | L'un des suivants : Phone , e- Email , URL , réseaux Social . |
name | chaîne facultative | L'étiquette associée à l'enregistrement. |
value | chaîne | La valeur de l'enregistrement. |
Le type d'enregistrement de contact Address
contient des champs d'adresse supplémentaires:
Nom | taper | la description |
---|---|---|
type | chaîne, toujours Address | Un enregistrement de numéro de téléphone. |
name | chaîne facultative | Libellé associé au numéro. |
CountryCode | chaîne facultative | Un indicatif de pays. |
Country | chaîne facultative | Un nom de pays. |
ZIP | chaîne facultative | Un code postal ou postal. |
State | chaîne facultative | Un nom d'état ou une abréviation. |
City | chaîne facultative | Un nom de ville. |
Municipality | chaîne facultative | Un nom de commune. |
SubLocality | chaîne facultative | Un nom de quartier ou de zone. |
Street | chaîne facultative | Un nom d'adresse de rue. |
Exemples de données
{ "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" }
Appel
Les attributs
Nom | taper | la description |
---|---|---|
id | chaîne de caractères | ID de l'article. |
data_type | chaîne, toujours call | ID du type de données de l'élément. |
call_type | chaîne | L'un des suivants : Phone , FaceTime Video FaceTime Audio . |
address | chaîne | La cible de l'appel. Il peut s'agir d'un numéro de téléphone, d'un identifiant Apple ou d'un autre identifiant. |
duration | flotter | La durée de l'appel. |
answered | bourdonner | Si l'appel a été répondu. |
from_me | bourdonner | Si l'appel était sortant ou entrant. |
date | date-heure | Quand l'appel a été passé. |
Exemples de données
{ "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" }
un événement
attributs d' event
Nom | taper | la description |
---|---|---|
id | chaîne de caractères | ID de l'article. |
data_type | chaîne, toujours event | ID du type de données de l'élément. |
unique_identifier | chaîne facultative | UID d'élément pour la déduplication sur plusieurs sources de données d'événement. |
calendar | chaîne facultative | Nom du calendrier. |
calendar_uid | chaîne facultative | UID du calendrier. |
calendar_store | chaîne facultative | Type de magasin de calendrier, c'est-à-dire iCloud , Default . |
summary | chaîne facultative | Le résumé ou le titre de l'événement. |
description | chaîne facultative | Le descriptif de l'événement. |
start_date | date/heure facultative | Lorsque l'événement commence. |
end_date | date/heure facultative | Lorsque l'événement se termine. |
start_time_zone | chaîne facultative | Le fuseau horaire de start_date . |
end_time_zone | chaîne facultative | Le timeone de end_date . |
all_day | booléen | Si l'événement dure une journée entière. |
travel_time | durée facultative | La durée du temps de trajet de l'événement. |
recurrence | event.recurrence imbriqué facultatif | Les paramètres de récurrence de l'événement. |
location | chaîne facultative | Où se déroule l'événement. |
start_location | chaîne facultative | Où l'événement commence. |
attendees | liste facultative de chaînes | Noms des participants à l'événement. |
attached_url | chaîne facultative | Une URL associée à l'événement. |
creation_date | date/heure facultative | Date de création de l'événement. Non défini si l'entrée de calendrier par défaut, comme les jours fériés. |
event.recurrence
Nom | taper | la description |
---|---|---|
interval | entier | Le nombre de repeat à répéter, c'est-à-dire 1 an (une fois tous les 1 an). |
repeat | chaîne | L'un des suivants : OneTime , Daily , Weekly , Monthly , Yearly . |
repeat_end_date | date/heure facultative | Quand arrêter de se reproduire. |
Exemples de données
{ "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 }
Remarque
{ "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" }
Visite
Un enregistrement d'une visite de page de site Web.
Les attributs
Nom | taper | la description |
---|---|---|
data_type | chaîne, toujours visit | ID du type de données de l'élément. |
url | chaîne | L'URL de la page visitée. |
title | chaîne | Le titre de la page visitée. |
date_created | date-heure | Quand la visite a eu lieu. |
{ "data_type": "visit", "url": "https://reincubate.com/", "title": "Reincubate: the app data company", "date_created": "2020-01-01T00:00:00.000000Z" }
Biscuit
Un cookie HTTP.
Les attributs
Nom | taper | la description |
---|---|---|
data_type | chaîne, toujours cookie | ID du type de données de l'élément. |
name | chaîne | Le nom du cookie. |
value | chaîne | La valeur du cookie. |
domain | chaîne | Le spécificateur de domaine du cookie. |
path | chaîne | Le spécificateur de chemin du cookie. |
flags | chaîne | Tous les drapeaux définis sur le cookie. |
creation_date | date-heure | Quand le cookie a été créé. |
expiry_date | date-heure | Lorsque le cookie expire. |
{ "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" }
Emplacement
Attributs de données
Nom | taper | la description |
---|---|---|
data_type | chaîne, toujours location | Un identifiant de type de données. |
latitude | flotter | Coordonnée de latitude de l'emplacement. |
longitude | flotter | Coordonnée de longitude de l'emplacement. |
altitude | flotter | Coordonnée d'altitude de l'emplacement. |
horizontal_accuracy | flotter | La précision horizontale de la mesure. |
vertical_accuracy | flotter | La précision verticale de la mesure. |
position_type | chaîne | Identifiant de la méthode de mesure utilisée. |
date_created | date-heure | Lorsque la mesure a été effectuée. |
Exemples de données
{ "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" }