Reincubar o serviço de retransmissão
Sessões
Um processo de emparelhamento é usado para estabelecer um link entre um usuário da API e uma instância do aplicativo Reincubate Relay. Por padrão, se não estiver emparelhado, o Reincubate Relay exibirá seu código de emparelhamento. O usuário deve fornecer isso ao seu aplicativo para criar uma sessão válida, através da seguinte chamada.
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>"
}
}'
Depois que a sessão for criada, você poderá visualizar informações na instância do aplicativo por meio do atributo de source do objeto da sessão. Isso deve ser algo como isto:
{
"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"
},
...
}
Assinaturas
Diferentemente de outros serviços, é necessária uma assinatura para que a API possa começar a recuperar dados de uma origem do Reincubate Relay. Isso ajuda o usuário do aplicativo a entender exatamente quais dados estão sendo acessados.
As assinaturas só podem ser criadas com fontes do tipo rirelay.source , que são os filhos da instância Reincubate Relay. A sessão a ser usada ao pesquisar a fonte também deve ser especificada.
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"]
}
}'
A assinatura permanecerá em um estado pendente até que o usuário permita o acesso ao dispositivo específico na interface do aplicativo Reincubate Relay. Uma vez permitido, o estado passará para active .
Uma pesquisa inicial é criada imediatamente na ativação da assinatura, e as pesquisas subsequentes serão criadas quando o aplicativo Reincubate Relay notificar a API sobre novos dados.
Pesquisas
As pesquisas também podem ser criadas manualmente em fontes com assinaturas ativas. Isso é útil ao solucionar problemas de dados recuperados ou ao testar novos tipos de dados.
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"]
}
}'
Eventos
Para se manter informado sobre alterações assíncronas, como uma assinatura criando uma nova enquete ou uma sessão expirando, sua implementação precisará receber notificações de eventos da API por meio de um ponto de extremidade de webhook.
Para obter detalhes sobre como instalar e configurar o ponto de extremidade do webhook, consulte Configurando o webhooks .
Tipos de informação
O serviço Relay atualmente suporta apenas a recuperação de informações de rirelay.instance , que inclui informações aninhadas em quaisquer fontes rirelay.source
atributos rirelay.instance.info
| nome | modelo | Descrição |
|---|---|---|
id | código de origem | ID do objeto de origem correspondente a esta instância do Relay. |
version | str | Versão do aplicativo Reincubate Relay. |
os | str | Identificador do sistema operacional em que o aplicativo Reincubate Relay está sendo executado. |
sources | lista de rirelay.source.info | Lista de origens associadas à instância. |
date_created | data hora | Datetime quando esta instância foi vista pela primeira vez. |
date_last_seen | data hora | Data e hora em que esta instância foi vista pela última vez. |
atributos rirelay.source.info
| nome | modelo | Descrição |
|---|---|---|
id | código de origem | ID do objeto de origem correspondente a esta origem do Relay. |
uid | str | O ID exclusivo do dispositivo iOS da origem do Relay. |
info | aninhado rirelay.source.info.info | Metadados para esta fonte de retransmissão. |
date_created | data hora | Datetime quando esta fonte foi vista pela primeira vez. |
date_last_seen | data hora | Datetime quando esta fonte foi vista pela última vez. |
atributos rirelay.source.info.info
Observe que name , ios_version , apple_model_id , apple_serial e is_encrypted , também estão incluídos nos dados de info aninhados Source e, portanto, podem ser acessados diretamente por meio de endpoints da API.
Para outros atributos, como phone_number , uma pesquisa completa para rirelay.instance.info é necessária - como este é informação pessoal não é armazenado pela API.
| nome | modelo | Descrição |
|---|---|---|
name | str | Nome da fonte do relé. Disponível em Source.info . |
ios_version | str | Versão do iOS em execução na fonte Relay, ou seja, 13.4 . Disponível em Source.info . |
apple_model_id | str | ID do modelo da fonte do relé, ou seja, iPhone7,2 . Disponível em Source.info . |
apple_serial | str | Número de série da fonte do relé, ou seja, F4KPWDR7G5DN . Disponível em Source.info . |
phone_number | opcional, str | Número de telefone da fonte de relé. Estará vazio se a funcionalidade de celular não estiver habilitada no dispositivo (ou seja, sem SIM ou apenas Wi-Fi). |
is_encrypted | bool | Se a origem do Relay está configurada para produzir backups criptografados. Disponível em Source.info . |
Tipos de dados
Reincubar tipos de dados do aplicativo de retransmissão
| identificador | Descrição |
|---|---|
ios_messages.messages | Recupera dados de mensagens do iOS, incluindo iMessage e SMS. |
ios_contacts.contacts | Recupera dados de contatos do iOS. |
ios_phone.calls | Recupera os dados do telefone iOS. |
ios_calendar.events | Recupera os dados do calendário do iOS. |
ios_notes.notes | Recupera dados do iOS Notes. |
ios_health.data | Recupera dados do iOS Health. |
ios_safari.history | Recupera os dados do histórico do navegador Safari. |
ios_safari.cookies | Recupera dados de cookies do Safari. |
whatsapp.messages | Recupera mensagens do WhatsApp. |
whatsapp.calls | Recupera o histórico de chamadas do WhatsApp. |
whatsapp_business.messages |
Retrieves WhatsApp for Business messages. |
viber.messages | Recupera mensagens do Viber. |
viber.calls | Recupera o histórico de chamadas do Viber. |
viber.conversations | Recupera conversas do Viber. |
viber.contacts | Recupera os contatos do Viber. |
kik.messages | Recupera mensagens Kik. |
kik.contacts | Recupera contatos Kik. |
hike.messages | Recupera mensagens de caminhada. |
hike.posts | Recupera postagens de caminhada. |
wechat.messages | Recupera mensagens do WeChat. |
tinder.messages | Recupera mensagens do Tinder. |
line.messages | Recupera mensagens de linha. |
facebook.messages | Recupera mensagens do Facebook. |
snapchat.messages | Recupera mensagens do Snapchat. |
snapchat.stories | Recupera histórias do Snapchat. |
skype.messages | Recupera mensagens do Skype. |
Reincubar tipos de dados agregados de retransmissão
| identificador | Descrição |
|---|---|
.photos | Verifica o backup em busca de arquivos de imagem. |
.videos | Verifica o backup para arquivos de vídeo. |
.recordings | Verifica o backup para arquivos de gravação. |
.voicemails | Verifica o backup de arquivos de correio de voz. |
.app_usage | Verifica o backup para obter informações de uso do aplicativo. |
.installed_apps | Verifica o backup para obter informações do aplicativo instalado. |
.locations | Verifica o backup em busca de locais. |
.linked_watches | Verifica o backup em busca de informações vinculadas do Apple Watch. |
Mensagens do iOS
Mensagens
| Código do tipo de dados | ios_messages.messages |
Atributos de dados
Estende o tipo de dados da message .
Dados de amostra
{
"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"
}
Contatos do iOS
Contatos
| Código do tipo de dados | ios_contacts.contacts |
Atributos de dados
Estende o tipo de dados do contact .
Dados de amostra
{
"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"
}
Telefone iOS
Chamadas
| Código do tipo de dados | ios_phone.calls |
Atributos de dados
Estende o tipo de dados da call .
Dados de amostra
{
"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"
}
Calendário do iOS
Eventos
| Código do tipo de dados | ios_calendar.events |
Atributos de dados
Estende o tipo de dados do event .
Dados de amostra
{
"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
}
Notas do iOS
Notas
| Código do tipo de dados | ios_notes.notes |
Atributos de dados
Estende o tipo de dados da note .
Saúde do iOS
Dados associados ao aplicativo iOS Health e à estrutura HealthKit.
Dados
| Código do tipo de dados | ios_health.data |
Atributos ios_health.profile
| nome | modelo | Descrição |
|---|---|---|
info_type | string, sempre ios_health.profile | ID do tipo de dados do item. |
gender | string opcional | Um de: Female , Male , Other . |
date_of_birth | data opcional | A data de nascimento do proprietário do perfil. |
weight | flutuação opcional | A medida do peso do proprietário do perfil, em quilogramas. |
height | flutuação opcional | A medida da altura do proprietário do perfil, em metros. |
blood_type | string opcional | O tipo sanguíneo do proprietário do perfil. |
fitzpatrick_skin_type | string opcional | O tipo de skin Fitzpatrick do proprietário do perfil. Um de: Type I , Type II , Type II , Type IV , Type V |
Amostra 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"
}
Atributos ios_health.sample
| nome | modelo | Descrição |
|---|---|---|
id | corda | Código do item. |
data_type | corda | ID do tipo de dados do item. Um dos tipos de dados do iOS Health. |
type | corda | Tipo de amostra. Um de: quantity , binary , category . |
value | um de string, float, integer | Valor da amostra. O tipo deste campo depende do atributo de type |
unit | string opcional | Defina se for uma unidade de amostra não padrão. |
was_user_entered | boleano | Se o usuário inseriu essa medição manualmente. |
start_date | data hora | Quando o período de amostragem começou. |
end_date | data hora | Quando o período de amostragem terminou. |
Tipos de dados de integridade do 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
Dados de amostra
{
"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"
}
iOS Safari
História
| Código do tipo de dados | ios_safari.history |
Atributos de dados
Estende o tipo de dados da visit .
Dados de amostra
{
"data_type": "visit",
"url": "https://reincubate.com/",
"title": "Reincubate: the app data company",
"date_created": "2020-01-01T00:00:00.000000Z"
}
Biscoitos
| Código do tipo de dados | ios_safari.cookies |
Atributos de dados
Estende o tipo de dados do cookie .
Dados de amostra
{
"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
| Código do tipo de dados | whatsapp.messages |
Atributos
Estende o tipo de dados da message .
WhatsApp Calls
| Código do tipo de dados | whatsapp.calls |
Atributos
Estende o tipo de dados da call .
WhatsApp for Business Messages
| Data type ID | whatsapp_business.messages |
Atributos
Estende o tipo de dados da message .
Viber
Chamadas
viber.messages | Recupera mensagens do Viber. |
viber.calls | Recupera o histórico de chamadas do Viber. |
viber.conversations | Recupera conversas do Viber. |
viber.contacts | Recupera os contatos do Viber. |
Mensagens
| Código do tipo de dados | viber.messages |
Atributos
Estende o tipo de dados da message .
Chamadas
| Código do tipo de dados | viber.calls |
Atributos
Estende o tipo de dados da call .
Conversas
| Código do tipo de dados | viber.conversations |
Atributos
Estende o tipo de dados da conversation .
Contatos
| Código do tipo de dados | viber.contacts |
Atributos
Estende o tipo de dados do contact .
Kik
Mensagens
| Código do tipo de dados | kik.messages |
Atributos
Estende o tipo de dados da message .
Contatos
| Código do tipo de dados | kik.contacts |
Atributos
Estende o tipo de dados do contact .
Caminhada
hike.messages | Recupera mensagens de caminhada. |
hike.posts | Recupera postagens de caminhada. |
Mensagens
| Código do tipo de dados | hike.messages |
Atributos
Estende o tipo de dados da message .
Postagens
| Código do tipo de dados | hike.posts |
Atributos
Estende o tipo de dados da message .
Mensagens
| Código do tipo de dados | wechat.messages |
Atributos
Estende o tipo de dados da message .
Tinder
Mensagens
| Código do tipo de dados | tinder.messages |
Atributos
Estende o tipo de dados da message .
Linha
Mensagens
| Código do tipo de dados | line.messages |
Atributos
Estende o tipo de dados da message .
Facebook Messenger
Mensagens
| Código do tipo de dados | facebook.messenger |
Atributos
Estende o tipo de dados da message .
Snapchat
Mensagens
| Código do tipo de dados | snapchat.messages |
Atributos
Estende o tipo de dados da message .
Histórias
| Código do tipo de dados | snapchat.stories |
Atributos
Estende o tipo de dados da message .
Skype
Mensagens
| Código do tipo de dados | skype.messages |
Atributos
Estende o tipo de dados da message .