Reincubare il servizio di inoltro
sessioni
Un processo di associazione viene utilizzato per stabilire un collegamento tra un utente dell'API e un'istanza dell'app Reincubate Relay. Per impostazione predefinita, se non accoppiato, il relè di reincubazione visualizzerà il suo codice di accoppiamento. L'utente deve dare questo alla tua applicazione affinché possa creare una sessione valida, tramite la seguente chiamata.
curl https://ricloud-api.reincubate.com/sessions \
-X POST \
-H 'Authorization: Token <your key_token>' \
-H 'Content-Type: application/json' \
-d '{
"source": {
"user": "1",
"type": "rirelay.instance"
},
"payload": {
"code": "<Reincubate Relay pairing code>"
}
}'
Una volta creata la sessione, sarai in grado di visualizzare le informazioni sull'istanza dell'app tramite l'attributo source dell'oggetto sessione. Questo dovrebbe assomigliare a questo:
{
"id": "<session ID>",
"resource": "session",
...
"source": {
"id": "<source ID>",
"resource": "source",
"user": "<user ID>",
"type": "rirelay.instance",
"identifier": "ee360f13-1b54-4d8c-8876-e5f573f0ba1c",
"info": null,
"parent": null,
"children": {
"data": [
{
"id": "<child source ID>",
"resource": "source",
"user": "<user ID>",
"type": "rirelay.source",
"identifier": "70a4982e-5893-4a5f-8af6-19db834d378d",
"info": {
"is_encrypted": true,
"apple_model_id": "iPhone10,4",
"apple_serial": "FFABCZGTJC12",
"name": "iPhone 8",
"ios_version": "13.2"
},
"children": {
"data": [],
"has_more": false,
"total_count": 0,
"url": "/sources/<child source ID>/children"
},
"state": "active",
"date_created": "2019-10-08T09:02:15.770532Z"
}
],
"has_more": false,
"total_count": 0,
"url": "/sources/<source ID>/children"
},
"state": "active",
"date_created": "2019-10-08T08:58:33.861941Z"
},
...
}
Sottoscrizioni
A differenza di altri servizi, è necessario un abbonamento prima che l'API possa iniziare a recuperare i dati da un'origine Reincubate Relay. Questo per aiutare l'utente dell'app a capire esattamente a quali dati si accede.
Le sottoscrizioni possono essere create solo su rirelay.source tipo rirelay.source , che sono i figli dell'istanza Reincubate Relay. È necessario specificare anche la sessione da utilizzare per il polling della fonte.
curl https://ricloud-api.reincubate.com/subscriptions \
-X POST \
-H 'Authorization: Token <your key_token>' \
-H 'Content-Type: application/json' \
-d '{
"session": "<session ID>",
"source": "<child source ID>",
"poll_payload": {
"data_types": ["ios_messages.messages"]
}
}'
L'abbonamento rimarrà in sospeso fino a quando l'utente non avrà autorizzato l'accesso al dispositivo specifico nell'interfaccia dell'app Reincubate Relay. Una volta che è stato consentito, lo stato passerà a active .
Un sondaggio iniziale viene immediatamente creato all'attivazione della sottoscrizione, quindi i sondaggi successivi verranno creati quando l'app Reincubate Relay notifica all'API di nuovi dati.
sondaggi
I sondaggi possono anche essere creati manualmente su origini con abbonamenti attivi. Ciò è utile durante la risoluzione dei problemi dei dati recuperati o durante il test di nuovi tipi di dati.
curl https://ricloud-api.reincubate.com/polls \
-X POST \
-H 'Authorization: Token <your key_token>' \
-H 'Content-Type: application/json' \
-d '{
"subscription": "<subscription ID>",
"payload": {
"data_types": ["ios_phone.calls", "whatsapp.messages"]
}
}'
eventi
Per rimanere informato delle modifiche asincrone, come una sottoscrizione che crea un nuovo sondaggio o una scadenza della sessione, l'implementazione dovrà ricevere notifiche di eventi dall'API tramite un endpoint webhook.
Per i dettagli su come impostare e configurare l'endpoint del webhook, consultare la sezione relativa alla configurazione dei webhook .
Tipi di informazioni
Il servizio di inoltro attualmente supporta solo il recupero di informazioni da rirelay.instance , che include informazioni nidificate su qualsiasi fonte rirelay.source
Attributi rirelay.instance.info
| nome | genere | descrizione |
|---|---|---|
id | ID sorgente | ID dell'oggetto di origine corrispondente a questa istanza di inoltro. |
version | str | Versione dell'app Reincubate Relay. |
os | str | Identificatore del sistema operativo su cui è in esecuzione l'app Reincubate Relay. |
sources | elenco di rirelay.source.info | Elenco delle origini associate all'istanza. |
date_created | appuntamento | Datetime in cui questa istanza è stata vista per la prima volta. |
date_last_seen | appuntamento | Datetime in cui questa istanza è stata vista l'ultima volta. |
Attributi rirelay.source.info
| nome | genere | descrizione |
|---|---|---|
id | ID sorgente | ID dell'oggetto di origine corrispondente a questa origine di inoltro. |
uid | str | L'ID univoco del dispositivo iOS della sorgente di inoltro. |
info | rirelay.source.info.info annidato | Metadati per questa origine di inoltro. |
date_created | appuntamento | Data e ora in cui questa fonte è stata vista per la prima volta. |
date_last_seen | appuntamento | Data e ora in cui questa fonte è stata vista l'ultima volta. |
Attributi rirelay.source.info.info
Si noti che name , ios_version , apple_model_id , apple_serial , e is_encrypted , sono inclusi anche nelle nidificate info dati sulla Source oggetti, e sono quindi accessibili direttamente tramite gli endpoint API.
Per altri attributi, come phone_number , è richiesto un sondaggio completo per rirelay.instance.info , poiché si tratta di informazioni di identificazione personale non memorizzate dall'API.
| nome | genere | descrizione |
|---|---|---|
name | str | Nome della sorgente del relè. Disponibile in Source.info . |
ios_version | str | Versione di iOS in esecuzione sull'origine Relay, ovvero 13.4 . Disponibile in Source.info . |
apple_model_id | str | ID modello della sorgente Relay, ovvero iPhone7,2 . Disponibile in Source.info . |
apple_serial | str | Numero di serie della sorgente Relay, ovvero F4KPWDR7G5DN . Disponibile in Source.info . |
phone_number | facoltativo, str | Numero di telefono della fonte del relè. Sarà vuoto se la funzionalità cellulare non è abilitata sul dispositivo (es. nessuna SIM o solo Wi-Fi). |
is_encrypted | bollo | Se l'origine di inoltro è impostata per produrre backup crittografati. Disponibile in Source.info . |
Tipi di dati
Reincubare i tipi di dati dell'app di inoltro
| identificatore | descrizione |
|---|---|
ios_messages.messages | Recupera i dati dei messaggi iOS inclusi iMessage e SMS. |
ios_contacts.contacts | Recupera i dati dei contatti iOS. |
ios_phone.calls | Recupera i dati del telefono iOS. |
ios_calendar.events | Recupera i dati del calendario iOS. |
ios_notes.notes | Recupera i dati di iOS Notes. |
ios_health.data | Recupera i dati sulla salute di iOS. |
ios_safari.history | Recupera i dati della cronologia del browser Safari. |
ios_safari.cookies | Recupera i dati dei cookie di Safari. |
whatsapp.messages | Recupera i messaggi di WhatsApp. |
whatsapp.calls | Recupera la cronologia delle chiamate di WhatsApp. |
whatsapp_business.messages |
Retrieves WhatsApp for Business messages. |
viber.messages | Recupera i messaggi di Viber. |
viber.calls | Recupera la cronologia delle chiamate di Viber. |
viber.conversations | Recupera le conversazioni di Viber. |
viber.contacts | Recupera i contatti Viber. |
kik.messages | Recupera i messaggi Kik. |
kik.contacts | Recupera i contatti di Kik. |
hike.messages | Recupera i messaggi di escursione. |
hike.posts | Recupera i post di Hike. |
wechat.messages | Recupera i messaggi di WeChat. |
tinder.messages | Recupera i messaggi di Tinder. |
line.messages | Recupera i messaggi di linea. |
facebook.messages | Recupera i messaggi di Facebook. |
snapchat.messages | Recupera i messaggi di Snapchat. |
snapchat.stories | Recupera le storie di Snapchat. |
skype.messages | Recupera i messaggi di Skype. |
Reincubare i tipi di dati aggregati del relè
| identificatore | descrizione |
|---|---|
.photos | Esegue la scansione del backup per i file di immagine. |
.videos | Esegue la scansione del backup per i file video. |
.recordings | Esegue la scansione del backup per la registrazione dei file. |
.voicemails | Esegue la scansione del backup per i file di posta vocale. |
.app_usage | Esegue la scansione del backup per le informazioni sull'utilizzo dell'app. |
.installed_apps | Esegue la scansione del backup per le informazioni sull'app installata. |
.locations | Esegue la scansione del backup per le posizioni. |
.linked_watches | Esegue la scansione del backup per le informazioni di Apple Watch collegate. |
Messaggi iOS
messaggi
| ID del tipo di dati | ios_messages.messages |
Attributi di dati
Estende il tipo di dati del message .
Dati di esempio
{
"id": "a1b2c3d4",
"data_type": "message",
"conversation_id": "w6x7y8z9",
"handle": "vodafone",
"type": "SMS",
"text": "Hi from Vodafone!",
"attachments": [],
"group_handles": [
"+441234567890",
"renate@reincubate.com"
],
"from_me": false,
"deleted": false,
"date": "2020-01-01T00:00:00.000000Z"
}
Contatti iOS
Contatti
| ID del tipo di dati | ios_contacts.contacts |
Attributi di dati
Estende il tipo di dati di contact .
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 00:00:00.000000Z"
}
telefono iOS
chiamate
| ID del tipo di dati | ios_phone.calls |
Attributi di dati
Estende il tipo di dati della call .
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"
}
Calendario iOS
eventi
| ID del tipo di dati | ios_calendar.events |
Attributi di dati
Estende il tipo di dati event .
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
}
Note iOS
Appunti
| ID del tipo di dati | ios_notes.notes |
Attributi di dati
Estende il tipo di dati della note .
iOS Health
Dati associati all'app iOS Health e al framework HealthKit.
Dati
| ID del tipo di dati | ios_health.data |
Attributi ios_health.profile
| nome | genere | descrizione |
|---|---|---|
info_type | stringa, sempre ios_health.profile | ID del tipo di dati dell'articolo. |
gender | stringa opzionale | Uno tra: Female , Male , Other . |
date_of_birth | data facoltativa | La data di nascita del proprietario del profilo. |
weight | galleggiante opzionale | La misurazione del peso del proprietario del profilo, in chilogrammi. |
height | galleggiante opzionale | La misurazione dell'altezza del proprietario del profilo, in metri. |
blood_type | stringa opzionale | Il gruppo sanguigno del proprietario del profilo. |
fitzpatrick_skin_type | stringa opzionale | Tipo di pelle Fitzpatrick del proprietario del profilo. Uno di: Type I , Type II , Type II , Type IV , Type V |
esempio ios_health.profile
{
"info_type": "ios_health.profile",
"gender": "Female",
"date_of_birth": "1988-08-22",
"weight": 75.2543977,
"height": 1.9812,
"blood_type": "O+",
"fitzpatrick_skin_type": "Type V"
}
Attributi ios_health.sample
| nome | genere | descrizione |
|---|---|---|
id | corda | Numero identificativo dell'oggetto. |
data_type | corda | ID del tipo di dati dell'articolo. Uno dei tipi di dati iOS Health. |
type | corda | Tipo di campione. Uno di: quantity , binary , category . |
value | uno tra stringa, float, intero | Valore campione. Il tipo di questo campo dipende dall'attributo del type esempio. |
unit | stringa opzionale | Impostare se un'unità campione non predefinita. |
was_user_entered | booleano | Se l'utente ha inserito questa misurazione manualmente. |
start_date | appuntamento | Quando è iniziato il periodo di campionamento. |
end_date | appuntamento | Quando il periodo di campionamento è terminato. |
Tipi di dati di salute iOS:
ios_health.body_mass_indexios_health.body_fat_percentageios_health.heightios_health.weightios_health.lean_body_massios_health.heart_rateios_health.stepsios_health.walking_running_distanceios_health.resting_energyios_health.active_energyios_health.flights_climbedios_health.oxygen_saturationios_health.blood_glucoseios_health.systolic_blood_pressureios_health.diastolic_blood_pressureios_health.blood_alcohol_contentios_health.peripheral_perfusion_indexios_health.total_fatios_health.polyunsaturated_fatios_health.monounsaturated_fatios_health.saturated_fatios_health.dietary_cholesterolios_health.sodiumios_health.carbohydratesios_health.fibreios_health.dietary_sugarios_health.dietary_energyios_health.proteinios_health.vitamin_aios_health.vitamin_b6ios_health.vitamin_b12ios_health.vitamin_cios_health.vitamin_dios_health.vitamin_eios_health.vitamin_kios_health.calciumios_health.ironios_health.thiamineios_health.riboflavinios_health.niacinios_health.folateios_health.biotinios_health.pantothenic_acidios_health.phosphorousios_health.iodineios_health.magnesiumios_health.zincios_health.seleniumios_health.copperios_health.manganeseios_health.chromiumios_health.molybdenumios_health.chlorideios_health.potassiumios_health.number_of_times_fallenios_health.electrodermal_activityios_health.inhaler_usageios_health.respiratory_rateios_health.body_temperatureios_health.sleep_analysisios_health.forced_vital_capacityios_health.forced_expiration_volume_1ios_health.peak_expiratory_flow_rateios_health.caffeineios_health.workoutios_health.blood_pressure_correlationios_health.cycling_distanceios_health.waterios_health.uv_indexios_health.basal_body_temperatureios_health.cervical_mucus_qualityios_health.ovulation_test_resultsios_health.menstruationios_health.spottingios_health.sexual_activity
Dati di esempio
{
"id": "a1b2c3d41",
"data_type": "ios_health.walking_running_distance",
"type": "quantity",
"value": 6.08,
"was_user_entered": false,
"start_date": "2016-07-04T18:11:54.000000Z",
"end_date": "2016-07-04T18:12:09.000000Z"
}, {
"id": "a1b2c3d42",
"data_type": "ios_health.steps",
"type": "quantity",
"value": 8.0,
"was_user_entered": false,
"start_date": "2016-07-04T18:11:54.000000Z",
"end_date": "2016-07-04T18:12:09.000000Z"
}, {
"id": "a1b2c3d43",
"data_type": "ios_health.caffeine",
"type": "quantity",
"value": 800.0,
"unit": "mg",
"was_user_entered": true,
"start_date": "2016-07-04T18:11:54.000000Z",
"end_date": "2016-07-04T18:12:09.000000Z"
}
Safari iOS
Storia
| ID del tipo di dati | ios_safari.history |
Attributi di dati
Estende il tipo di dati della visit .
Dati di esempio
{
"data_type": "visit",
"url": "https://reincubate.com/",
"title": "Reincubate: the app data company",
"date_created": "2020-01-01T00:00:00.000000Z"
}
Biscotti
| ID del tipo di dati | ios_safari.cookies |
Attributi di dati
Estende il tipo di dati dei cookie .
Dati di esempio
{
"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"
}
WhatsApp & WhatsApp for Business
WhatsApp Messages
| ID del tipo di dati | whatsapp.messages |
attributi
Estende il tipo di dati del message .
WhatsApp Calls
| ID del tipo di dati | whatsapp.calls |
attributi
Estende il tipo di dati della call .
WhatsApp for Business Messages
| Data type ID | whatsapp_business.messages |
attributi
Estende il tipo di dati del message .
Viber
Chiamate
viber.messages | Recupera i messaggi di Viber. |
viber.calls | Recupera la cronologia delle chiamate di Viber. |
viber.conversations | Recupera le conversazioni di Viber. |
viber.contacts | Recupera i contatti Viber. |
Messaggi
| ID del tipo di dati | viber.messages |
attributi
Estende il tipo di dati del message .
Chiamate
| ID del tipo di dati | viber.calls |
attributi
Estende il tipo di dati della call .
Conversazioni
| ID del tipo di dati | viber.conversations |
attributi
Estende il tipo di dati di conversation .
Contatti
| ID del tipo di dati | viber.contacts |
attributi
Estende il tipo di dati di contact .
Kik
messaggi
| ID del tipo di dati | kik.messages |
attributi
Estende il tipo di dati del message .
Contatti
| ID del tipo di dati | kik.contacts |
attributi
Estende il tipo di dati di contact .
Escursione
hike.messages | Recupera i messaggi di escursione. |
hike.posts | Recupera i post di Hike. |
messaggi
| ID del tipo di dati | hike.messages |
attributi
Estende il tipo di dati del message .
Messaggi
| ID del tipo di dati | hike.posts |
attributi
Estende il tipo di dati del message .
messaggi
| ID del tipo di dati | wechat.messages |
attributi
Estende il tipo di dati del message .
Tinder
messaggi
| ID del tipo di dati | tinder.messages |
attributi
Estende il tipo di dati del message .
Linea
messaggi
| ID del tipo di dati | line.messages |
attributi
Estende il tipo di dati del message .
Facebook Messenger
messaggi
| ID del tipo di dati | facebook.messenger |
attributi
Estende il tipo di dati del message .
Snapchat
messaggi
| ID del tipo di dati | snapchat.messages |
attributi
Estende il tipo di dati del message .
Storie
| ID del tipo di dati | snapchat.stories |
attributi
Estende il tipo di dati del message .
Skype
messaggi
| ID del tipo di dati | skype.messages |
attributi
Estende il tipo di dati del message .