Automatizare deep link
Creați automatizări programatic folosind scheme URL.
Last updated: April 5, 2026
Pe această pagină
- Prezentare generală
- Format URL
- Referință parametri
- Parametri obligatorii
- Configurare de bază
- Setări export
- Ritm sincronizare
- Configurare HTTP
- Setări specifice tipului de date
- Notificări
- Exemple
- Automatizare REST API de bază
- Cu antete de autentificare
- Metrici specifice
- Antrenamente cu traseu
- Exemplu complet
- CSV
- Codare URL
- Testare deep link-uri
- Din Safari (iOS)
- Depanare
- Probleme frecvente
- Limite de lungime URL
- Precedență parametri
- Bune practici
- Documentație conexă
- Asistență
Automatizările deep link permit crearea de automatizări REST API prin scheme URL. Este util pentru scripturi, gestionarea configurației sau integrarea cu sisteme externe care trebuie să configureze exporturi de date de sănătate.
Prezentare generală
Deep link-urile folosesc o schemă URL personalizată pentru a crea și configura automatizări REST API fără a introduce manual setările în aplicație. La deschiderea URL-ului, aplicația creează o automatizare nouă cu configurația specificată.
Cazuri de utilizare:
- Configurare programatică din scripturi sau unelte
- Configurare în masă a automatizărilor
- Integrare cu sisteme de gestionare a configurației
- Configurare rapidă din aplicații sau site-uri externe
- Fluxuri de testare și dezvoltare
Caracteristici:
- Creare prin schemă URL
- Toate setările unei automatizări REST API
- Validare tipată a parametrilor
- Mesaje de eroare detaliate
Limitări
- Deep link-urile suportă doar automatizări REST API (nu Dropbox, Google Drive etc.)
- Limitele de lungime URL pot restrânge liste foarte lungi de parametri
- Se aplică toate limitările automatizărilor REST API (procesare în fundal, acces la date de sănătate etc.)
Format URL
Structura deep link-ului:
com.HealthExport://automation?parameter1=value1¶meter2=value2&...
URL de bază: com.HealthExport://automation
Parametri: Toți sunt opționali cu excepția lui name și url. Numele parametrilor nu țin cont de majuscule/minuscule.
Referință parametri
Parametri obligatorii
url (obligatoriu)
- Tip: String (URL valid)
- Descriere: Endpointul unde se trimit datele de sănătate
- Exemplu:
https://api.example.com/health-data - Notă: Trebuie să fie HTTP/HTTPS valid
name (obligatoriu)
- Tip: String
- Descriere: Nume descriptiv al automatizării
- Exemplu:
My%20Backend%20API(codare URL: „My Backend API”) - Notă: Codare URL dacă există spații sau caractere speciale
Configurare de bază
format
- Tip: Enum (
json,csv) - Implicit:
json - Descriere: Formatul exportului
- Exemplu:
format=jsonsauformat=csv - Notă: CSV activează automat agregarea datelor
enabled
- Tip: Boolean (
true,false,1,0,yes,no) - Implicit:
false - Descriere: Dacă automatizarea este activată imediat după creare
- Exemplu:
enabled=true
datatype
- Tip: Enum (vezi tipurile de mai jos)
- Implicit:
healthMetrics - Descriere: Tipul de date exportate
- Exemplu:
datatype=workouts - Notă: Un singur tip; setarea configurează steagurile include corespunzătoare
Tipuri valide:
healthMetrics— metrici (pași, puls, somn etc.)workouts— antrenamentesymptoms— simptomeecg— ECGheartRateNotification— evenimente puls ridicat/scăzutstateOfMind— stare de spirit (iOS 18.0+)cycleTracking— ciclu și sănătate reproductivămedications— medicamente (iOS 26.0+)
Setări export
period
- Tip: Enum
- Implicit:
none - Descriere: Interval de date
- Exemplu:
period=today
Valori:
none— implicit (ziua anterioară completă plus ziua curentă)lastsync— de la ultima sincronizaretoday— ziua curentăyesterday— ziua anterioarăprevious7days— ultimele 7 zilerealtime— actualizări în timp real (necesită interval de sincronizare în secunde)
interval
- Tip: Enum
- Implicit:
none - Descriere: Grupare/agregare temporală (doar pentru
datatype=healthMetrics) - Exemplu:
interval=hours
Valori:
none— fără agregare implicităminutes— pe minuthours— pe orădays— pe ziweeks— pe săptămânămonths— pe lunăyears— pe an
Notă: Doar cu datatype=healthMetrics. Formatul CSV agregă întotdeauna.
aggregatedata
- Tip: Boolean
- Implicit:
true(CSV),false(JSON) - Descriere: Agregare/rezumat (doar metrici + JSON)
- Exemplu:
aggregatedata=true - Notă: Devine
trueautomat dacăformat=csv
aggregatesleep
- Tip: Boolean
- Implicit:
true - Descriere: Agregare date somn
- Exemplu:
aggregatesleep=true
exportversion
- Tip: Enum (
v1,v2,1,2) - Implicit:
v2 - Descriere: Versiune format export
- Exemplu:
exportversion=v2 - Notă: Versiunea 2 include antrenamente îmbunătățite și metadate mai detaliate
batchrequests
- Tip: Boolean
- Implicit:
false - Descriere: Trimite date în loturi pe mai multe cereri (REST API + JSON)
- Exemplu:
batchrequests=true - Notă: Doar cu
format=jsonși destinație REST API
Ritm sincronizare
syncinterval
- Tip: Enum
- Implicit:
minutes - Descriere: Unitatea pentru ritmul de sincronizare
- Exemplu:
syncinterval=hours
Valori:
minutes— la fiecare N minutehours— la fiecare N oredays— la fiecare N zileweeks— la fiecare N săptămâniseconds— doar cuperiod=realtime
Notă: Pentru REST API, în general minutes, hours, days, weeks, exceptând exportul în timp real.
syncquantity
- Tip: Integer pozitiv
- Implicit:
5 - Descriere: Multiplicatorul intervalului
- Exemplu:
syncquantity=10cusyncinterval=minutes= la 10 minute - Notă: Trebuie să fie > 0
Configurare HTTP
headers
- Tip: String (perechi cheie-valoare separate prin virgulă)
- Implicit: niciunul
- Descriere: Antete HTTP
- Exemplu:
headers=Authorization,Bearer%20token123,X-API-Key,abc123 - Format:
key1,value1,key2,value2,... - Notă: Valorile trebuie codate URL; fiecare antet are cheie și valoare
Exemple de antete:
Authorization, Bearer your-tokenX-API-Key, your-api-keyContent-Type, application/json
requesttimeout
- Tip: Integer (60–86400)
- Implicit:
60 - Descriere: Timeout în secunde
- Exemplu:
requesttimeout=300 - Notă: Între 60 și 86400 (1 minut–24 ore)
Setări specifice tipului de date
Metrici de sănătate
metrics
- Tip: String (MetricName separate prin virgulă, rawValues)
- Implicit: toate metricile disponibile
- Descriere: Metrici incluse (doar
healthMetrics) - Exemplu:
metrics=Step%20Count,Heart%20Rate,Active%20Energy - Notă: Valori exacte MetricName. Dacă lipsește, se includ toate.
Numele uzuale (exemple):
Step CountHeart RateActive EnergyApple Exercise TimeSleep AnalysisWalking + Running Distance
Lista completă apare în ecranul de selecție a metricilor din aplicație.
Antrenamente
includeroutes
- Tip: Boolean
- Implicit:
true - Descriere: Include trasee (doar
workouts) - Exemplu:
includeroutes=true
includeworkoutmetadata
- Tip: Boolean
- Implicit:
true - Descriere: Include metrici din antrenament (puls, calorii etc.) — doar
workouts - Exemplu:
includeworkoutmetadata=true
workoutsmetadatainterval
- Tip: Enum (
minutes,seconds) - Implicit:
minutes - Descriere: Grupare metrici antrenament (
workouts+exportversion=v2) - Exemplu:
workoutsmetadatainterval=seconds - Notă: Doar cu
datatype=workoutsșiexportversion=v2
workouttypes
- Tip: String (UInt separate prin virgulă)
- Implicit: gol (toate tipurile)
- Descriere: Tipuri de antrenament incluse (
workouts) - Exemplu:
workouttypes=1,2,3 - Notă: Identificatori HealthKit pentru tipul de antrenament
Notificări
notifyonupdate
- Tip: Boolean
- Implicit:
true - Descriere: Notificare la actualizarea cache-ului
- Exemplu:
notifyonupdate=true
notifywhenrun
- Tip: Boolean
- Implicit:
true - Descriere: Notificare la fiecare execuție
- Exemplu:
notifywhenrun=false
Exemple
Automatizare REST API de bază
com.HealthExport://automation?url=https://api.example.com/health&name=My%20Automation&format=json&enabled=true
Creează o automatizare care trimite JSON la endpoint.
Cu antete de autentificare
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
Automatizare cu antete personalizate.
Metrici specifice
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
Doar pași și puls, agregat pe ore.
Antrenamente cu traseu
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
Antrenamente cu traseu și metrici, versiune export 2.
Exemplu complet
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
Exemplu cu majoritatea parametrilor importanți.
CSV
com.HealthExport://automation?url=https://api.example.com/csv&name=CSV%20Export&format=csv&datatype=healthMetrics&period=yesterday&enabled=true
CSV — agregarea este activată automat.
Codare URL
Caracterele speciale trebuie codate. Exemple:
- Spațiu:
%20 - Virgulă:
%2C - Două puncte:
%3A - Punct și virgulă:
%3B - Egal:
%3D - Ampersand:
%26 - Plus:
%2B
Exemplu:
- Original:
My Automation Name - Codat:
My%20Automation%20Name
Antete:
- Original:
Authorization, Bearer token123 - Codat:
Authorization,Bearer%20token123
Multe limbaje oferă funcții de codare:
- Swift:
addingPercentEncoding(withAllowedCharacters:) - JavaScript:
encodeURIComponent() - Python:
urllib.parse.quote()
Testare deep link-uri
Din Safari (iOS)
- Deschideți Safari
- Introduceți URL-ul deep link în bara de adresă
- Atingeți Go
- Aplicația ar trebui să se deschidă și să creeze automatizarea
Depanare
Probleme frecvente
„Nu s-a putut analiza URL-ul”
- Schema:
com.HealthExport://automation - Valori codate corect
- Numele parametrilor corecte (nu țin cont de majuscule)
„Valoare parametru URL invalidă”
- URL HTTP/HTTPS valid pentru
url - Codare corectă
- Fără caractere interzise
„Tip de date invalid”
- Valori exacte:
healthMetrics,workouts,symptoms,ecg,heartRateNotification,stateOfMind,cycleTracking,medications
„Interval sincronizare invalid”
- REST API:
minutes,hours,days,weeks secondsdoar cuperiod=realtime
„Setările de agregare sunt valide doar pentru healthMetrics”
aggregatedatașiintervaldoar cudatatype=healthMetrics
„Batch requests sunt valide doar pentru REST API cu JSON”
batchrequestsdoar cuformat=json
„Setările de antrenament sunt valide doar pentru workouts”
includeroutes,includeworkoutmetadata,workoutsmetadataintervaldoar cudatatype=workouts
„Parametrul metrics este valabil doar pentru healthMetrics”
metricsdoar cudatatype=healthMetrics
„Nume metrică invalid”
- MetricName rawValues exacte (ex.: „Step Count”, „Heart Rate”)
- Consultați ecranul din aplicație
„Timeout cerere invalid”
- Între 60 și 86400 secunde
„Este necesar un nume pentru automatizare”
- Parametrul
nameprezent și nevid după decodare
Limite de lungime URL
URL-uri foarte lungi (multe metrici sau antete) pot depăși limitele sistemului. Soluții:
- Mai puține metrici în
metrics - Mai puține antete
- Valori mai scurte unde se poate
- Configurații împărțite în mai multe automatizări
Precedență parametri
La conflict:
datatyperesetează steagurile includeformat=csvimpuneaggregatedata=trueperiod=realtimeceresyncinterval=seconds- Combinații incompatibile generează erori de validare
Bune practici
Sincronizare (când automatizările sunt create prin deep link): încărcare dispozitiv + iPhone Mirroring pentru acces la date ca la deblocat.
Codificați întotdeauna valorile cu caractere speciale.
Testați cu URL-uri simple, apoi complicați.
Folosiți nume descriptive.
Validați URL-urile înainte de generare programatică.
Tratați erorile la parsarea deep link-urilor.
Documentați formatele dacă construiți unelte generatoare.
Luați în calcul lungimea cu multe metrici sau antete.
Testați pe dispozitive reale, nu doar pe simulatoare.
Documentație conexă
- Automatizare REST API — detalii despre automatizările REST API
- Prezentare generală automatizări
- Export manual
Asistență
Dacă problema nu este acoperită aici:
- Citiți mesajul de eroare pentru parametrul indicat
- Verificați codarea URL
- Testați cu un URL minimal
- Folosiți Chat Support din aplicație