Automatyzacja przez deep linki
Twórz automatyzacje programowo, używając schematów URL.
Last updated: April 5, 2026
Na tej stronie
- Przegląd
- Format URL
- Referencja parametrów
- Parametry wymagane
- Konfiguracja podstawowa
- Ustawienia eksportu
- Częstotliwość synchronizacji
- Konfiguracja HTTP
- Ustawienia specyficzne dla typu danych
- Powiadomienia
- Przykłady
- Podstawowa automatyzacja REST API
- Z nagłówkami uwierzytelniania
- Metryki zdrowotne z wybranymi metrykami
- Treningi z danymi trasy
- Pełny przykład konfiguracji
- Przykład formatu CSV
- Kodowanie URL
- Testowanie deep linków
- Z Safari (iOS)
- Z Terminala (macOS / symulator iOS)
- Z Xcode
- Z aplikacji Skróty
- Rozwiązywanie problemów
- Typowe problemy
- Ograniczenia długości URL
- Pierwszeństwo parametrów
- Dobre praktyki
- Powiązana dokumentacja
- Wsparcie
Automatyzacje przez deep linki pozwalają programowo tworzyć automatyzacje REST API za pomocą schematów URL. Jest to przydatne w skryptach automatyzacji, zarządzaniu konfiguracją lub integracji z systemami zewnętrznymi, które muszą konfigurować eksport danych zdrowotnych.
Przegląd
Automatyzacje przez deep linki wykorzystują niestandardowy schemat URL do tworzenia i konfigurowania automatyzacji REST API bez ręcznego wprowadzania ustawień w aplikacji. Po otwarciu adresu deep link aplikacja automatycznie tworzy nową automatyzację z podaną konfiguracją.
Przypadki użycia:
- Programowe konfigurowanie automatyzacji ze skryptów lub narzędzi
- Masowa konfiguracja automatyzacji
- Integracja z systemami zarządzania konfiguracją
- Szybka konfiguracja z zewnętrznych aplikacji lub stron
- Przepływy pracy testowe i deweloperskie
Kluczowe funkcje:
- Tworzenie automatyzacji przez schemat URL
- Konfiguracja wszystkich ustawień automatyzacji REST API
- Walidacja parametrów z zachowaniem typów
- Szczegółowe komunikaty błędów
Ograniczenia
- Deep linki obsługują wyłącznie automatyzacje REST API (nie Dropbox, Google Drive itd.)
- Limity długości URL mogą ograniczać bardzo długie listy parametrów
- Obowiązują wszystkie ograniczenia automatyzacji REST API (przetwarzanie w tle, dostęp do danych zdrowotnych itd.)
Format URL
Adres deep linka ma następującą strukturę:
com.HealthExport://automation?parameter1=value1¶meter2=value2&...
Podstawowy URL: com.HealthExport://automation
Parametry: Wszystkie parametry są opcjonalne z wyjątkiem name i url. Nazwy parametrów nie rozróżniają wielkości liter.
Referencja parametrów
Parametry wymagane
url (wymagany)
- Typ: Ciąg (prawidłowy URL)
- Opis: Adres URL punktu końcowego, pod który mają być wysyłane dane zdrowotne
- Przykład:
https://api.example.com/health-data - Uwaga: Musi być prawidłowym adresem HTTP/HTTPS
name (wymagany)
- Typ: Ciąg
- Opis: Opisowa nazwa automatyzacji
- Przykład:
My%20Backend%20API(zakodowane w URL: «My Backend API») - Uwaga: W razie spacji lub znaków specjalnych należy zakodować w URL
Konfiguracja podstawowa
format
- Typ: Enum (
json,csv) - Domyślnie:
json - Opis: Format eksportu danych
- Przykład:
format=jsonlubformat=csv - Uwaga: Format CSV automatycznie włącza agregację danych
enabled
- Typ: Wartość logiczna (
true,false,1,0,yes,no) - Domyślnie:
false - Opis: Czy automatyzacja ma być włączona zaraz po utworzeniu
- Przykład:
enabled=true
datatype
- Typ: Enum (patrz typy danych poniżej)
- Domyślnie:
healthMetrics - Opis: Rodzaj eksportowanych danych zdrowotnych
- Przykład:
datatype=workouts - Uwaga: Można wybrać tylko jeden typ danych. Ustawia to automatycznie odpowiednie flagi uwzględniania.
Prawidłowe typy danych:
healthMetrics– Metryki zdrowotne (kroki, tętno, sen itd.)workouts– Treningi i aktywnośćsymptoms– Objawy i stany zdrowiaecg– Zapisy EKGheartRateNotification– Zdarzenia wysokiego/niskiego tętnastateOfMind– Nastrój i stan psychiczny (iOS 18.0+)cycleTracking– Cykl miesiączkowy i zdrowie reprodukcyjnemedications– Logi leków i przestrzeganie zaleceń (iOS 26.0+)
Ustawienia eksportu
period
- Typ: Enum
- Domyślnie:
none - Opis: Zakres dat eksportu danych
- Przykład:
period=today
Prawidłowe wartości:
none– Domyślnie (cały poprzedni dzień plus bieżący dzień)lastsync– Od ostatniej synchronizacjitoday– Bieżący dzieńyesterday– Poprzedni dzieńprevious7days– Ostatnie 7 dnirealtime– Aktualizacje w czasie rzeczywistym (wymaga interwału synchronizacji w sekundach)
interval
- Typ: Enum
- Domyślnie:
none - Opis: Interwał grupowania/agregacji czasowej (tylko dla typu danych
healthMetrics) - Przykład:
interval=hours
Prawidłowe wartości:
none– Domyślnie (brak agregacji)minutes– Grupowanie co minutęhours– Grupowanie co godzinędays– Grupowanie co dzieńweeks– Grupowanie co tydzieńmonths– Grupowanie co miesiącyears– Grupowanie co rok
Uwaga: Ten parametr ma zastosowanie tylko przy datatype=healthMetrics. Format CSV zawsze agreguje dane.
aggregatedata
- Typ: Wartość logiczna
- Domyślnie:
true(dla CSV),false(dla JSON) - Opis: Czy agregować/podsumowywać dane (tylko dla
healthMetricsw formacie JSON) - Przykład:
aggregatedata=true - Uwaga: Przy
format=csvustawiane automatycznie natrue
aggregatesleep
- Typ: Wartość logiczna
- Domyślnie:
true - Opis: Czy agregować dane snu
- Przykład:
aggregatesleep=true
exportversion
- Typ: Enum (
v1,v2,1,2) - Domyślnie:
v2 - Opis: Wersja formatu eksportu
- Przykład:
exportversion=v2 - Uwaga: Wersja 2 zawiera rozszerzone dane treningów i bogatsze metadane
batchrequests
- Typ: Wartość logiczna
- Domyślnie:
false - Opis: Wysyłanie danych partiami w wielu żądaniach (tylko dla REST API w formacie JSON)
- Przykład:
batchrequests=true - Uwaga: Tylko przy
format=jsoniexportDestination=restApi
Częstotliwość synchronizacji
syncinterval
- Typ: Enum
- Domyślnie:
minutes - Opis: Interwał częstotliwości synchronizacji
- Przykład:
syncinterval=hours
Prawidłowe wartości:
minutes– Synchronizacja co N minuthours– Synchronizacja co N godzindays– Synchronizacja co N dniweeks– Synchronizacja co N tygodniseconds– Tylko przyperiod=realtime
Uwaga: W automatyzacjach REST API dozwolone są tylko minutes, hours, days i weeks, chyba że używasz eksportu w czasie rzeczywistym.
syncquantity
- Typ: Liczba całkowita dodatnia
- Domyślnie:
5 - Opis: Liczba interwałów między synchronizacjami
- Przykład:
syncquantity=10(synchronizacja co 10 minut, jeślisyncinterval=minutes) - Uwaga: Musi być większa od 0
Konfiguracja HTTP
headers
- Typ: Ciąg (pary klucz-wartość rozdzielone przecinkami)
- Domyślnie: Brak
- Opis: Nagłówki HTTP do uwierzytelniania lub metadanych
- Przykład:
headers=Authorization,Bearer%20token123,X-API-Key,abc123 - Format:
key1,value1,key2,value2,... - Uwaga: Wartości należy zakodować w URL. Każdy nagłówek wymaga klucza i wartości.
Przykładowe nagłówki:
Authorization, Bearer your-tokenX-API-Key, your-api-keyContent-Type, application/json
requesttimeout
- Typ: Liczba całkowita (60–86400)
- Domyślnie:
60 - Opis: Limit czasu żądania w sekundach
- Przykład:
requesttimeout=300 - Uwaga: Od 60 do 86400 sekund (1 minuta do 24 godzin)
Ustawienia specyficzne dla typu danych
Ustawienia metryk zdrowotnych
metrics
- Typ: Ciąg (rozdzielone przecinkami wartości MetricName rawValues)
- Domyślnie: Wszystkie dostępne metryki
- Opis: Konkretne metryki do uwzględnienia (tylko dla
healthMetrics) - Przykład:
metrics=Step%20Count,Heart%20Rate,Active%20Energy - Uwaga: Używaj dokładnych MetricName rawValues. Jeśli pominięte, uwzględniane są wszystkie dostępne metryki.
Typowe nazwy metryk:
Step CountHeart RateActive EnergyApple Exercise TimeSleep AnalysisWalking + Running Distance
Pełną listę znajdziesz na ekranie wyboru metryk w aplikacji.
Ustawienia treningów
includeroutes
- Typ: Wartość logiczna
- Domyślnie:
true - Opis: Uwzględnianie danych trasy dla treningów (tylko dla
workouts) - Przykład:
includeroutes=true
includeworkoutmetadata
- Typ: Wartość logiczna
- Domyślnie:
true - Opis: Uwzględnianie metryk zebranych podczas treningu (tętno, kalorie itd.; tylko dla
workouts) - Przykład:
includeworkoutmetadata=true
workoutsmetadatainterval
- Typ: Enum (
minutes,seconds) - Domyślnie:
minutes - Opis: Grupowanie czasowe metryk treningu (tylko dla
workoutsz wersją eksportu v2) - Przykład:
workoutsmetadatainterval=seconds - Uwaga: Tylko przy
datatype=workoutsiexportversion=v2
workouttypes
- Typ: Ciąg (wartości UInt rozdzielone przecinkami)
- Domyślnie: Puste (wszystkie typy treningów)
- Opis: Konkretne typy treningów do uwzględnienia (tylko dla
workouts) - Przykład:
workouttypes=1,2,3 - Uwaga: Wykorzystuje identyfikatory typów treningów HealthKit
Powiadomienia
notifyonupdate
- Typ: Wartość logiczna
- Domyślnie:
true - Opis: Powiadomienia przy aktualizacji danych w pamięci podręcznej
- Przykład:
notifyonupdate=true
notifywhenrun
- Typ: Wartość logiczna
- Domyślnie:
true - Opis: Powiadomienia przy każdym uruchomieniu automatyzacji
- Przykład:
notifywhenrun=false
Przykłady
Podstawowa automatyzacja REST API
com.HealthExport://automation?url=https://api.example.com/health&name=My%20Automation&format=json&enabled=true
Tworzy prostą automatyzację wysyłającą dane JSON do podanego punktu końcowego.
Z nagłówkami uwierzytelniania
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
Tworzy automatyzację z niestandardowymi nagłówkami uwierzytelniania.
Metryki zdrowotne z wybranymi metrykami
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
Tworzy automatyzację eksportującą tylko kroki i tętno z agregacją godzinową.
Treningi z danymi trasy
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
Tworzy automatyzację treningów z trasą i metrykami treningu, wersja eksportu 2.
Pełny przykład konfiguracji
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
Kompleksowy przykład z ustawionymi głównymi parametrami.
Przykład formatu CSV
com.HealthExport://automation?url=https://api.example.com/csv&name=CSV%20Export&format=csv&datatype=healthMetrics&period=yesterday&enabled=true
Tworzy automatyzację eksportu CSV. Format CSV automatycznie włącza agregację danych.
Kodowanie URL
Znaki specjalne w wartościach parametrów muszą być zakodowane w URL. Typowe kodowania:
- Spacja:
%20 - Przecinek:
%2C - Dwukropek:
%3A - Średnik:
%3B - Znak równości:
%3D - Ampersand:
%26 - Plus:
%2B
Przykład:
- Oryginał:
My Automation Name - Zakodowane:
My%20Automation%20Name
Przykład nagłówków:
- Oryginał:
Authorization, Bearer token123 - Zakodowane:
Authorization,Bearer%20token123
Większość języków programowania i narzędzi oferuje funkcje kodowania URL:
- Swift:
addingPercentEncoding(withAllowedCharacters:) - JavaScript:
encodeURIComponent() - Python:
urllib.parse.quote()
Testowanie deep linków
Z Safari (iOS)
- Otwórz Safari na urządzeniu z iOS
- Wpisz adres deep linka w pasku adresu
- Stuknij Idź
- Aplikacja powinna się otworzyć i utworzyć automatyzację
Z Terminala (macOS / symulator iOS)
xcrun simctl openurl booted "com.HealthExport://automation?url=https://api.example.com/health&name=Test&enabled=true"
Z Xcode
Ustaw punkt przerwania lub użyj konsoli debuggera:
let url = URL(string: "com.HealthExport://automation?url=https://api.example.com/health&name=Test&enabled=true")!
try DataModel.shared.handleAPIDeepLink(url)
Z aplikacji Skróty
- Utwórz nowy skrót
- Dodaj czynność «Otwórz URL»
- Wpisz adres deep linka
- Uruchom skrót
Rozwiązywanie problemów
Typowe problemy
"Could not parse the URL"
- Sprawdź, czy schemat URL jest poprawny:
com.HealthExport://automation - Upewnij się, że wszystkie wartości parametrów są prawidłowo zakodowane w URL
- Sprawdź pisownię nazw parametrów (bez rozróżniania wielkości liter)
"Invalid URL parameter value"
- Upewnij się, że URL jest prawidłowym adresem HTTP/HTTPS
- Sprawdź kodowanie URL
- Upewnij się, że URL nie zawiera niedozwolonych znaków
"Invalid data type"
- Używaj dokładnych wartości typów:
healthMetrics,workouts,symptoms,ecg,heartRateNotification,stateOfMind,cycleTracking,medications - Sprawdź pisownię (dopasowanie bez rozróżniania wielkości liter jest obsługiwane)
"Invalid sync cadence interval"
- Dla REST API używaj tylko:
minutes,hours,days,weeks secondstylko przyperiod=realtime
"Aggregation settings are only valid for healthMetrics data type"
- Parametry
aggregatedataiintervaldziałają tylko zdatatype=healthMetrics - Usuń te parametry lub zmień typ danych
"Batch requests are only valid for REST API with JSON format"
batchrequestsdziała tylko przyformat=json- Zmień format na JSON lub usuń parametr
batchrequests
"Workout settings are only valid for workouts data type"
includeroutes,includeworkoutmetadataiworkoutsmetadataintervaldziałają tylko zdatatype=workouts- Zmień typ danych na
workoutslub usuń te parametry
"Metrics parameter is only valid for healthMetrics data type"
- Parametr
metricsdziała tylko zdatatype=healthMetrics - Zmień typ danych lub usuń
metrics
"Invalid metric name"
- Używaj dokładnych MetricName rawValues (np. «Step Count», «Heart Rate»)
- Sprawdź pisownię i wielkość liter
- Zobacz ekran wyboru metryk w aplikacji
"Invalid request timeout"
- Musi być między 60 a 86400 sekundami
- Użyj wartości z tego zakresu
"A name is required for the automation"
- Upewnij się, że parametr
namejest podany - Sprawdź, że po dekodowaniu URL wartość nie jest pusta
Ograniczenia długości URL
Bardzo długie adresy URL (zwłaszcza z wieloma metrykami lub nagłówkami) mogą przekraczać limity systemowe. Rozważ:
- mniej metryk w parametrze
metrics - mniej nagłówków
- krótsze wartości parametrów tam, gdzie to możliwe
- podział złożonej konfiguracji na kilka prostszych automatyzacji
Pierwszeństwo parametrów
Gdy parametry są sprzeczne:
- Wybór typu danych (
datatype) resetuje flagi uwzględniania - Format CSV (
format=csv) automatycznie ustawiaaggregatedata=true - Okres rzeczywisty (
period=realtime) wymagasyncinterval=seconds - Dla niezgodnych kombinacji zgłaszane są błędy walidacji
Dobre praktyki
Automatyczna synchronizacja (gdy automatyzacje są uruchamiane przez deep linki):
- Ładuj urządzenie i używaj Lusterka iPhone’a
- Podczas ładowania iOS nakłada mniej ograniczeń na wydajność, więc dane mogą synchronizować się częściej
- Lusterko iPhone’a sprawia, że urządzenie zachowuje się jak odblokowane, więc Health Auto Export ma dostęp do danych zdrowotnych dla działań automatycznych
- Ładuj urządzenie i używaj Lusterka iPhone’a
Zawsze koduj w URL wartości parametrów ze znakami specjalnymi
Najpierw testuj proste URL-e, potem dodawaj złożoność
Używaj opisowych nazw dla łatwiejszej identyfikacji
Waliduj adresy URL przed programowym tworzeniem deep linków
Obsługuj błędy przy parsowaniu deep linków
Dokumentuj formaty deep linków, jeśli budujesz narzędzia je generujące
Uwzględniaj długość URL przy wielu metrykach lub nagłówkach
Testuj na rzeczywistych urządzeniach oraz na symulatorach
Powiązana dokumentacja
- Przewodnik po automatyzacji REST API – Szczegóły automatyzacji REST API
- Przegląd automatyzacji – Ogólne pojęcia dotyczące automatyzacji
- Przewodnik po eksporcie ręcznym – Ręczny eksport danych
Wsparcie
Jeśli napotkasz problemy nieopisane w tym przewodniku:
- Przeczytaj komunikat błędu pod kątem problemów z parametrami
- Sprawdź poprawność kodowania URL
- Najpierw przetestuj minimalny adres URL
- Skorzystaj z przycisku czatu wsparcia w aplikacji