Automação Deep Link
Criar automações mediante programação usando esquemas de URL.
Last updated: February 7, 2026
On this page
- Visão Geral
- Formato de URL
- Referência de Parâmetros
- Parâmetros Obrigatórios
- Configuração Básica
- Configurações de Exportação
- Cadência de Sincronização
- Configuração HTTP
- Configurações Específicas do Tipo de Dados
- Notificações
- Exemplos
- Automação Básica de API REST
- Com Cabeçalhos de Autenticação
- Métricas de Saúde com Métricas Específicas
- Treinos com Dados de Rota
- Exemplo de Configuração Completa
- Exemplo de Formato CSV
- Codificação de URL
- Testando Deep Links
- Do Safari (iOS)
- Do Terminal (macOS/Simulador iOS)
- Do Xcode
- Da Aplicação Atalhos
- Solução de Problemas
- Problemas Comuns
- Limitações de Comprimento de URL
- Precedência de Parâmetros
- Melhores Práticas
- Documentação Relacionada
- Suporte
As automações deep link permitem criar automações de API REST mediante programação usando esquemas de URL. Isto é ideal para scripts de automação, gestão de configuração ou integração com sistemas externos que precisam configurar exportações de dados de saúde.
Visão Geral
As automações deep link usam um esquema de URL personalizado para criar e configurar automações de API REST sem inserir manualmente as configurações na aplicação. Quando abre uma URL deep link, a aplicação cria automaticamente uma nova automação com a configuração especificada.
Casos de Uso:
- Configuração programática de automações a partir de scripts ou ferramentas
- Configuração em massa de automações
- Integração com sistemas de gestão de configuração
- Configuração rápida a partir de aplicaçãos ou sites externos
- Fluxos de trabalho de teste e desenvolvimento
Recursos Principais:
- Criar automações via esquema de URL
- Configurar todas as configurações de automação de API REST
- Validação de parâmetros com segurança de tipos
- Mensagens de erro completas
Limitações
- Os deep links suportam apenas automações de API REST (não Dropbox, Google Drive, etc.)
- Os limites de comprimento de URL podem restringir listas de parâmetros muito longas
- Todas as limitações das automações de API REST se aplicam (processamento em segundo plano, acesso a dados de saúde, etc.)
Formato de URL
A URL deep link segue esta estrutura:
com.HealthExport://automation?parameter1=value1¶meter2=value2&...
URL Base: com.HealthExport://automation
Parâmetros: Todos os parâmetros são opcionais, exceto name e url. Os parâmetros não diferenciam maiúsculas de minúsculas.
Referência de Parâmetros
Parâmetros Obrigatórios
url (obrigatório)
- Tipo: String (URL válida)
- Descrição: A URL do endpoint onde os dados de saúde serão enviados
- Exemplo:
https://api.example.com/health-data - Nota: Deve ser uma URL HTTP/HTTPS válida
name (obrigatório)
- Tipo: String
- Descrição: Um nome descritivo para a automação
- Exemplo:
My%20Backend%20API(codificado em URL: "My Backend API") - Nota: Deve ser codificado em URL se contiver espaços ou caracteres especiais
Configuração Básica
format
- Tipo: Enum (
json,csv) - Padrão:
json - Descrição: Formato de exportação para os dados
- Exemplo:
format=jsonouformat=csv - Nota: O formato CSV habilita automaticamente a agregação de dados
enabled
- Tipo: Boolean (
true,false,1,0,yes,no) - Padrão:
false - Descrição: Se a automação está habilitada imediatamente após a criação
- Exemplo:
enabled=true
datatype
- Tipo: Enum (veja Tipos de Dados abaixo)
- Padrão:
healthMetrics - Descrição: Tipo de dados de saúde a exportar
- Exemplo:
datatype=workouts - Nota: Apenas um tipo de dados pode ser selecionado. Definir isso configura automaticamente os sinalizadores de inclusão apropriados.
Tipos de Dados Válidos:
healthMetrics- Métricas de saúde (passos, frequência cardíaca, sono, etc.)workouts- Atividades de exercício e fitnesssymptoms- Sintomas e condições de saúdeecg- Leituras de eletrocardiogramaheartRateNotification- Eventos de frequência cardíaca alta/baixastateOfMind- Entradas de humor e estado mental (iOS 18.0+)cycleTracking- Dados do ciclo menstrual e saúde reprodutivamedications- Registros de medicamentos e aderência (iOS 26.0+)
Configurações de Exportação
period
- Tipo: Enum
- Padrão:
none - Descrição: Intervalo de datas para exportação de dados
- Exemplo:
period=today
Valores Válidos:
none- Padrão (dia anterior completo mais dia atual)lastsync- Desde a última sincronizaçãotoday- Dia atualyesterday- Dia anteriorprevious7days- Últimos 7 diasrealtime- Atualizações em tempo real (requer intervalo de sincronização em segundos)
interval
- Tipo: Enum
- Padrão:
none - Descrição: Intervalo de agrupamento/agregação de tempo (válido apenas para o tipo de dados healthMetrics)
- Exemplo:
interval=hours
Valores Válidos:
none- Padrão (sem agregação)minutes- Agrupar por minutohours- Agrupar por horadays- Agrupar por diaweeks- Agrupar por semanamonths- Agrupar por mêsyears- Agrupar por ano
Nota: Este parâmetro é válido apenas quando datatype=healthMetrics. O formato CSV sempre agrega dados.
aggregatedata
- Tipo: Boolean
- Padrão:
true(para CSV),false(para JSON) - Descrição: Se deve agregar/resumir dados (válido apenas para healthMetrics com formato JSON)
- Exemplo:
aggregatedata=true - Nota: Definido automaticamente como
truequandoformat=csv
aggregatesleep
- Tipo: Boolean
- Padrão:
true - Descrição: Se deve agregar dados de sono
- Exemplo:
aggregatesleep=true
exportversion
- Tipo: Enum (
v1,v2,1,2) - Padrão:
v2 - Descrição: Versão do formato de exportação
- Exemplo:
exportversion=v2 - Nota: A versão 2 inclui dados de treino aprimorados e metadados mais detalhados
batchrequests
- Tipo: Boolean
- Padrão:
false - Descrição: Enviar dados em lotes em várias solicitações (válido apenas para API REST com formato JSON)
- Exemplo:
batchrequests=true - Nota: Válido apenas quando
format=jsoneexportDestination=restApi
Cadência de Sincronização
syncinterval
- Tipo: Enum
- Padrão:
minutes - Descrição: Intervalo para a cadência de sincronização
- Exemplo:
syncinterval=hours
Valores Válidos:
minutes- Sincronizar a cada N minutoshours- Sincronizar a cada N horasdays- Sincronizar a cada N diasweeks- Sincronizar a cada N semanasseconds- Válido apenas quandoperiod=realtime
Nota: Para automações de API REST, apenas minutes, hours, days e weeks são válidos, a menos que seja usado exportação em tempo real.
syncquantity
- Tipo: Integer (positivo)
- Padrão:
5 - Descrição: Número de intervalos entre sincronizações
- Exemplo:
syncquantity=10(sincronizar a cada 10 minutos se syncinterval=minutes) - Nota: Deve ser maior que 0
Configuração HTTP
headers
- Tipo: String (pares chave-valor separados por vírgula)
- Padrão: Nenhum
- Descrição: Cabeçalhos HTTP para autenticação ou metadados
- Exemplo:
headers=Authorization,Bearer%20token123,X-API-Key,abc123 - Formato:
key1,value1,key2,value2,... - Nota: Os valores devem ser codificados em URL. Cada cabeçalho requer tanto uma chave quanto um valor.
Exemplos de Cabeçalhos:
Authorization, Bearer your-tokenX-API-Key, your-api-keyContent-Type, application/json
requesttimeout
- Tipo: Integer (60-86400)
- Padrão:
60 - Descrição: Timeout da solicitação em segundos
- Exemplo:
requesttimeout=300 - Nota: Deve estar entre 60 e 86400 segundos (1 minuto a 24 horas)
Configurações Específicas do Tipo de Dados
Configurações de Métricas de Saúde
metrics
- Tipo: String (valores rawValues MetricName separados por vírgula)
- Padrão: Todas as métricas disponíveis
- Descrição: Métricas de saúde específicas a incluir (válido apenas para o tipo de dados healthMetrics)
- Exemplo:
metrics=Step%20Count,Heart%20Rate,Active%20Energy - Nota: Deve usar valores rawValues exatos de MetricName. Se não especificado, todas as métricas disponíveis são incluídas.
Nomes de Métricas Comuns:
Step CountHeart RateActive EnergyApple Exercise TimeSleep AnalysisWalking + Running Distance
Consulte o ecrã de seleção de métricas da aplicação para a lista completa de métricas disponíveis.
Configurações de Treinos
includeroutes
- Tipo: Boolean
- Padrão:
true - Descrição: Incluir dados de rota para treinos (válido apenas para o tipo de dados workouts)
- Exemplo:
includeroutes=true
includeworkoutmetadata
- Tipo: Boolean
- Padrão:
true - Descrição: Incluir métricas de treino (frequência cardíaca, calorias, etc.) coletadas durante os treinos (válido apenas para o tipo de dados workouts)
- Exemplo:
includeworkoutmetadata=true
workoutsmetadatainterval
- Tipo: Enum (
minutes,seconds) - Padrão:
minutes - Descrição: Agrupamento de tempo para métricas de treino (válido apenas para o tipo de dados workouts com exportVersion v2)
- Exemplo:
workoutsmetadatainterval=seconds - Nota: Válido apenas quando
datatype=workoutseexportversion=v2
workouttypes
- Tipo: String (valores UInt separados por vírgula)
- Padrão: Vazio (todos os tipos de treino)
- Descrição: Tipos de treino específicos a incluir (válido apenas para o tipo de dados workouts)
- Exemplo:
workouttypes=1,2,3 - Nota: Usa identificadores de tipo de treino do HealthKit
Notificações
notifyonupdate
- Tipo: Boolean
- Padrão:
true - Descrição: Receber notificações quando os dados em cache forem atualizados
- Exemplo:
notifyonupdate=true
notifywhenrun
- Tipo: Boolean
- Padrão:
true - Descrição: Receber notificações sempre que a automação for executada
- Exemplo:
notifywhenrun=false
Exemplos
Automação Básica de API REST
com.HealthExport://automation?url=https://api.example.com/health&name=My%20Automation&format=json&enabled=true
Cria uma automação básica que envia dados JSON para o endpoint especificado.
Com Cabeçalhos de Autenticação
com.HealthExport://automation?url=https://api.example.com/health&name=Authenticated%20API&format=json&headers=Authorization,Bearer%20your-token-here,X-API-Key,abc123&enabled=true
Cria uma automação com cabeçalhos de autenticação personalizados.
Métricas de Saúde com Métricas Específicas
com.HealthExport://automation?url=https://api.example.com/metrics&name=Steps%20and%20Heart%20Rate&format=json&datatype=healthMetrics&metrics=Step%20Count,Heart%20Rate&aggregatedata=true&interval=hours&enabled=true
Cria uma automação que exporta apenas passos e frequência cardíaca, agregados por hora.
Treinos com Dados de Rota
com.HealthExport://automation?url=https://api.example.com/workouts&name=Workout%20Export&format=json&datatype=workouts&includeroutes=true&includeworkoutmetadata=true&exportversion=v2&workoutsmetadatainterval=minutes&enabled=true
Cria uma automação para treinos com dados de rota e métricas de treino, usando a versão de exportação 2.
Exemplo de Configuração Completa
com.HealthExport://automation?url=https://api.example.com/health-data&name=Complete%20Configuration&format=json&datatype=healthMetrics&period=today&interval=hours&aggregatedata=true&aggregatesleep=true&exportversion=v2&syncinterval=hours&syncquantity=2&headers=Authorization,Bearer%20token123&requesttimeout=300&batchrequests=true¬ifyonupdate=true¬ifywhenrun=false&enabled=true
Um exemplo abrangente com todos os principais parâmetros configurados.
Exemplo de Formato CSV
com.HealthExport://automation?url=https://api.example.com/csv&name=CSV%20Export&format=csv&datatype=healthMetrics&period=yesterday&enabled=true
Cria uma automação de exportação CSV. Observe que o formato CSV habilita automaticamente a agregação de dados.
Codificação de URL
Caracteres especiais nos valores dos parâmetros devem ser codificados em URL. Codificações comuns:
- Espaço:
%20 - Vírgula:
%2C - Dois pontos:
%3A - Ponto e vírgula:
%3B - Igual:
%3D - E comercial:
%26 - Mais:
%2B
Exemplo:
- Original:
My Automation Name - Codificado:
My%20Automation%20Name
Exemplo de Cabeçalhos:
- Original:
Authorization, Bearer token123 - Codificado:
Authorization,Bearer%20token123
A maioria das linguagens de programação e ferramentas fornece funções de codificação de URL:
- Swift:
addingPercentEncoding(withAllowedCharacters:) - JavaScript:
encodeURIComponent() - Python:
urllib.parse.quote()
Testando Deep Links
Do Safari (iOS)
- Abra o Safari no seu dispositivo iOS
- Introduza a URL deep link na barra de endereços
- Toque em Ir
- A aplicação deve abrir e criar a automação
Do Terminal (macOS/Simulador iOS)
xcrun simctl openurl booted "com.HealthExport://automation?url=https://api.example.com/health&name=Test&enabled=true"
Do Xcode
Adicione um ponto de interrupção ou use o console do depurador:
let url = URL(string: "com.HealthExport://automation?url=https://api.example.com/health&name=Test&enabled=true")!
try DataModel.shared.handleAPIDeepLink(url)
Da Aplicação Atalhos
- Crie um novo atalho
- Adicione a ação "Abrir URLs"
- Introduza a sua URL deep link
- Execute o atalho
Solução de Problemas
Problemas Comuns
"Não foi possível analisar a URL"
- Verifique se o esquema de URL está correto:
com.HealthExport://automation - Verifique se todos os valores dos parâmetros estão corretamente codificados em URL
- Certifique-se de que os nomes dos parâmetros estão escritos corretamente (não diferencia maiúsculas de minúsculas)
"Valor de parâmetro de URL inválido"
- Verifique se a URL é uma URL HTTP/HTTPS válida
- Verifique a codificação de URL adequada
- Certifique-se de que a URL não contém caracteres inválidos
"Tipo de dados inválido"
- Use valores exatos do tipo de dados:
healthMetrics,workouts,symptoms,ecg,heartRateNotification,stateOfMind,cycleTracking,medications - Verifique a ortografia e maiúsculas/minúsculas (embora a correspondência sem diferenciação de maiúsculas e minúsculas seja suportada)
"Intervalo de cadência de sincronização inválido"
- Para API REST, use apenas:
minutes,hours,days,weeks - Use
secondsapenas quandoperiod=realtime
"As configurações de agregação são válidas apenas para o tipo de dados healthMetrics"
- Os parâmetros
aggregatedataeintervalfuncionam apenas comdatatype=healthMetrics - Remova esses parâmetros ou altere o tipo de dados
"Solicitações em lote são válidas apenas para API REST com formato JSON"
batchrequestsfunciona apenas quandoformat=json- Altere o formato para JSON ou remova o parâmetro batchrequests
"As configurações de treino são válidas apenas para o tipo de dados workouts"
includeroutes,includeworkoutmetadataeworkoutsmetadataintervalfuncionam apenas comdatatype=workouts- Altere o tipo de dados para workouts ou remova esses parâmetros
"O parâmetro metrics é válido apenas para o tipo de dados healthMetrics"
- O parâmetro
metricsfunciona apenas comdatatype=healthMetrics - Altere o tipo de dados ou remova o parâmetro metrics
"Nome de métrica inválido"
- Use valores rawValues exatos de MetricName (por exemplo, "Step Count", "Heart Rate")
- Verifique a ortografia e capitalização
- Consulte o ecrã de seleção de métricas da aplicação para nomes válidos
"Timeout de solicitação inválido"
- Deve estar entre 60 e 86400 segundos
- Use um valor dentro desse intervalo
"Um nome é obrigatório para a automação"
- Certifique-se de que o parâmetro
nameestá incluído - Verifique se o valor não está vazio após a decodificação da URL
Limitações de Comprimento de URL
URLs muito longas (especialmente com muitas métricas ou cabeçalhos) podem exceder os limites do sistema. Considere:
- Usar menos métricas no parâmetro
metrics - Reduzir o número de cabeçalhos
- Usar valores de parâmetros mais curtos quando possível
- Dividir configurações complexas em várias automações mais simples
Precedência de Parâmetros
Quando vários parâmetros entram em conflito:
- A seleção do tipo de dados (
datatype) redefine automaticamente os sinalizadores de inclusão - O formato CSV (
format=csv) define automaticamenteaggregatedata=true - O período em tempo real (
period=realtime) requersyncinterval=seconds - Erros de validação serão lançados para combinações incompatíveis
Melhores Práticas
- Sempre codifique em URL os valores dos parâmetros que contenham caracteres especiais
- Teste com URLs simples primeiro, depois adicione complexidade
- Use nomes descritivos para facilitar a identificação
- Valide URLs antes de criar deep links mediante programação
- Trate erros com elegância ao analisar deep links
- Documente seus formatos de deep link se estiver criando ferramentas que os geram
- Considere o comprimento da URL ao incluir muitas métricas ou cabeçalhos
- Teste em dispositivos reais além de simuladores
Documentação Relacionada
- Guia de Automação de API REST - Informações detalhadas sobre automações de API REST
- Visão Geral de Automações - Conceitos gerais de automação
- Guia de Exportação Manual - Como exportar dados manualmente
Suporte
Se você encontrar problemas não cobertos neste guia:
- Verifique a mensagem de erro para problemas específicos de parâmetros
- Verifique se sua codificação de URL está correta
- Teste com uma URL mínima primeiro
- Use o botão Suporte por Chat na aplicação para obter ajuda