Автоматизация по диплинку
Создание автоматизаций программно с помощью URL-схем.
Last updated: April 5, 2026
На этой странице
- Обзор
- Формат URL
- Справочник параметров
- Обязательные параметры
- Базовая конфигурация
- Настройки экспорта
- Периодичность синхронизации
- Настройка HTTP
- Настройки в зависимости от типа данных
- Уведомления
- Примеры
- Базовая автоматизация REST API
- С заголовками аутентификации
- Показатели здоровья с заданными метриками
- Тренировки с данными маршрута
- Пример полной конфигурации
- Пример экспорта в формате CSV
- URL-кодирование
- Тестирование диплинков
- В Safari (iOS)
- Устранение неполадок
- Частые проблемы
- Ограничения длины URL
- Приоритет параметров
- Лучшие практики
- См. также
- Поддержка
Диплинки позволяют программно создавать автоматизации REST API через URL-схемы. Это удобно для сценариев автоматизации, управления конфигурацией и интеграции с внешними системами, которым нужно настроить экспорт данных о здоровье.
Обзор
Диплинки используют пользовательскую URL-схему для создания и настройки автоматизаций REST API без ручного ввода параметров в приложении. При открытии URL диплинка приложение автоматически создаёт новую автоматизацию с заданной конфигурацией.
Сценарии использования:
- программная настройка автоматизаций из скриптов или утилит;
- массовая настройка автоматизаций;
- интеграция с системами управления конфигурацией;
- быстрая настройка из внешних приложений или веб-сайтов;
- сценарии тестирования и разработки.
Основные возможности:
- создание автоматизаций через URL-схему;
- настройка всех параметров автоматизации REST API;
- проверка типов параметров с учётом безопасности типов;
- подробные сообщения об ошибках.
Ограничения
- диплинки поддерживают только автоматизации REST API (не Dropbox, Google Drive и т. д.);
- ограничение длины URL может мешать очень длинным спискам параметров;
- действуют все ограничения автоматизаций REST API (фоновая обработка, доступ к данным о здоровье и т. д.).
Формат URL
Диплинк имеет такую структуру:
com.HealthExport://automation?parameter1=value1¶meter2=value2&...
Базовый URL: com.HealthExport://automation
Параметры: все необязательны, кроме name и url. Имена параметров не зависят от регистра.
Справочник параметров
Обязательные параметры
url (обязательный)
- Тип: строка (действительный URL)
- Описание: URL конечной точки, на которую отправляются данные о здоровье
- Пример:
https://api.example.com/health-data - Примечание: должен быть действительным URL по протоколу HTTP или HTTPS
name (обязательный)
- Тип: строка
- Описание: понятное имя автоматизации
- Пример:
My%20Backend%20API(в URL-кодировке: «My Backend API») - Примечание: при пробелах и спецсимволах значение нужно URL-кодировать
Базовая конфигурация
format
- Тип: перечисление (
json,csv) - По умолчанию:
json - Описание: формат экспорта данных
- Пример:
format=jsonилиformat=csv - Примечание: для формата CSV агрегация данных включается автоматически
enabled
- Тип: логическое (
true,false,1,0,yes,no) - По умолчанию:
false - Описание: включать ли автоматизацию сразу после создания
- Пример:
enabled=true
datatype
- Тип: перечисление (см. типы данных ниже)
- По умолчанию:
healthMetrics - Описание: тип данных о здоровье для экспорта
- Пример:
datatype=workouts - Примечание: можно выбрать только один тип данных. При установке этого параметра автоматически настраиваются соответствующие флаги включения.
Допустимые типы данных:
healthMetrics— показатели здоровья (шаги, пульс, сон и т. д.)workouts— упражнения и фитнес-активностиsymptoms— симптомы и состояния здоровьяecg— записи электрокардиограммыheartRateNotification— события высокого/низкого пульсаstateOfMind— настроение и психическое состояние (iOS 18.0+)cycleTracking— менструальный цикл и репродуктивное здоровьеmedications— приём лекарств и соблюдение режима (iOS 26.0+)
Настройки экспорта
period
- Тип: перечисление
- По умолчанию:
none - Описание: диапазон дат для экспорта данных
- Пример:
period=today
Допустимые значения:
none— по умолчанию (полный предыдущий день плюс текущий день)lastsync— с момента последней синхронизацииtoday— текущие суткиyesterday— предыдущие суткиprevious7days— предыдущие 7 днейrealtime— обновления в реальном времени (нужен интервал синхронизацииseconds)
interval
- Тип: перечисление
- По умолчанию:
none - Описание: интервал группировки/агрегации по времени (действителен только для типа данных
healthMetrics) - Пример:
interval=hours
Допустимые значения:
none— по умолчанию (без агрегации)minutes— группировка по минутамhours— по часамdays— по днямweeks— по неделямmonths— по месяцамyears— по годам
Примечание: параметр действителен только при datatype=healthMetrics. Формат CSV всегда агрегирует данные.
aggregatedata
- Тип: логическое
- По умолчанию:
true(для CSV),false(для JSON) - Описание: агрегировать ли / суммировать данные (действительно только для
healthMetricsв формате JSON) - Пример:
aggregatedata=true - Примечание: при
format=csvпринудительно устанавливаетсяtrue
aggregatesleep
- Тип: логическое
- По умолчанию:
true - Описание: агрегировать ли данные о сне
- Пример:
aggregatesleep=true
exportversion
- Тип: перечисление (
v1,v2,1,2) - По умолчанию:
v2 - Описание: версия формата экспорта
- Пример:
exportversion=v2 - Примечание: версия 2 включает расширенные данные тренировок и более подробные метаданные
batchrequests
- Тип: логическое
- По умолчанию:
false - Описание: отправлять данные пакетами в нескольких запросах (действительно только для REST API в формате JSON)
- Пример:
batchrequests=true - Примечание: действительно только при
format=jsonиexportDestination=restApi
Периодичность синхронизации
syncinterval
- Тип: перечисление
- По умолчанию:
minutes - Описание: единица интервала для периодичности синхронизации
- Пример:
syncinterval=hours
Допустимые значения:
minutes— синхронизация каждые N минутhours— каждые N часовdays— каждые N днейweeks— каждые N недельseconds— только приperiod=realtime
Примечание: для автоматизаций REST API допустимы только minutes, hours, days и weeks, если не используется экспорт в реальном времени.
syncquantity
- Тип: целое число (положительное)
- По умолчанию:
5 - Описание: число единиц интервала между синхронизациями
- Пример:
syncquantity=10(синхронизация каждые 10 минут приsyncinterval=minutes) - Примечание: значение должно быть больше 0
Настройка HTTP
headers
- Тип: строка (пары ключ–значение через запятую)
- По умолчанию: нет
- Описание: HTTP-заголовки для аутентификации или метаданных
- Пример:
headers=Authorization,Bearer%20token123,X-API-Key,abc123 - Формат:
key1,value1,key2,value2,... - Примечание: значения нужно URL-кодировать. У каждого заголовка должны быть и ключ, и значение.
Примеры заголовков:
Authorization, Bearer your-tokenX-API-Key, your-api-keyContent-Type, application/json
requesttimeout
- Тип: целое число (60–86400)
- По умолчанию:
60 - Описание: тайм-аут запроса в секундах
- Пример:
requesttimeout=300 - Примечание: значение от 60 до 86400 секунд (от 1 минуты до 24 часов)
Настройки в зависимости от типа данных
Настройки показателей здоровья
metrics
- Тип: строка (список rawValue имён MetricName через запятую)
- По умолчанию: все доступные метрики
- Описание: какие показатели здоровья включать (действительно только для
healthMetrics) - Пример:
metrics=Step%20Count,Heart%20Rate,Active%20Energy - Примечание: нужно использовать точные rawValue имён MetricName. Если параметр не задан, включаются все доступные метрики.
Часто используемые имена метрик:
Step CountHeart RateActive EnergyApple Exercise TimeSleep AnalysisWalking + Running Distance
Полный список доступных метрик см. на экране выбора метрик в приложении.
Настройки тренировок
includeroutes
- Тип: логическое
- По умолчанию:
true - Описание: включать данные маршрута для тренировок (действительно только для
workouts) - Пример:
includeroutes=true
includeworkoutmetadata
- Тип: логическое
- По умолчанию:
true - Описание: включать метрики тренировки (пульс, калории и т. д.), собранные во время тренировки (действительно только для
workouts) - Пример:
includeworkoutmetadata=true
workoutsmetadatainterval
- Тип: перечисление (
minutes,seconds) - По умолчанию:
minutes - Описание: группировка по времени для метрик тренировки (действительно только для
workoutsс версией экспорта v2) - Пример:
workoutsmetadatainterval=seconds - Примечание: действительно только при
datatype=workoutsиexportversion=v2
workouttypes
- Тип: строка (значения UInt через запятую)
- По умолчанию: пусто (все типы тренировок)
- Описание: какие типы тренировок включать (действительно только для
workouts) - Пример:
workouttypes=1,2,3 - Примечание: используются идентификаторы типов тренировок HealthKit
Уведомления
notifyonupdate
- Тип: логическое
- По умолчанию:
true - Описание: получать уведомления при обновлении кэшированных данных
- Пример:
notifyonupdate=true
notifywhenrun
- Тип: логическое
- По умолчанию:
true - Описание: получать уведомления при каждом выполнении автоматизации
- Пример:
notifywhenrun=false
Примеры
Базовая автоматизация REST API
com.HealthExport://automation?url=https://api.example.com/health&name=My%20Automation&format=json&enabled=true
Создаёт базовую автоматизацию, отправляющую JSON на указанную конечную точку.
С заголовками аутентификации
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
Создаёт автоматизацию с пользовательскими заголовками аутентификации.
Показатели здоровья с заданными метриками
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
Создаёт автоматизацию, экспортирующую только шаги и пульс с агрегацией по часам.
Тренировки с данными маршрута
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
Создаёт автоматизацию для тренировок с маршрутом и метриками тренировки, версия экспорта 2.
Пример полной конфигурации
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
Подробный пример с основными параметрами.
Пример экспорта в формате CSV
com.HealthExport://automation?url=https://api.example.com/csv&name=CSV%20Export&format=csv&datatype=healthMetrics&period=yesterday&enabled=true
Создаёт автоматизацию экспорта в CSV. Для CSV агрегация данных включается автоматически.
URL-кодирование
Специальные символы в значениях параметров нужно кодировать в URL. Частые кодировки:
- пробел:
%20 - запятая:
%2C - двоеточие:
%3A - точка с запятой:
%3B - равно:
%3D - амперсанд:
%26 - плюс:
%2B
Пример:
- исходная строка:
My Automation Name - в кодировке:
My%20Automation%20Name
Пример для заголовков:
- исходная строка:
Authorization, Bearer token123 - в кодировке:
Authorization,Bearer%20token123
В большинстве языков и средств есть функции URL-кодирования:
- Swift:
addingPercentEncoding(withAllowedCharacters:) - JavaScript:
encodeURIComponent() - Python:
urllib.parse.quote()
Тестирование диплинков
В Safari (iOS)
- Откройте Safari на устройстве с iOS
- Введите URL диплинка в адресную строку
- Нажмите «Перейти»
- Приложение должно открыться и создать автоматизацию
Устранение неполадок
Частые проблемы
"Could not parse the URL"
- убедитесь, что схема URL верная:
com.HealthExport://automation - проверьте, что все значения параметров правильно URL-кодированы
- убедитесь, что имена параметров написаны верно (регистр не важен)
"Invalid URL parameter value"
- URL должен быть действительным HTTP/HTTPS
- проверьте URL-кодирование
- в URL не должно быть недопустимых символов
"Invalid data type"
- используйте точные значения типов:
healthMetrics,workouts,symptoms,ecg,heartRateNotification,stateOfMind,cycleTracking,medications - проверьте написание; сопоставление без учёта регистра поддерживается
"Invalid sync cadence interval"
- для REST API используйте только:
minutes,hours,days,weeks seconds— только приperiod=realtime
"Aggregation settings are only valid for healthMetrics data type"
- параметры
aggregatedataиintervalработают только сdatatype=healthMetrics - удалите эти параметры или смените тип данных
"Batch requests are only valid for REST API with JSON format"
batchrequestsработает только приformat=json- переключите формат на JSON или удалите параметр
batchrequests
"Workout settings are only valid for workouts data type"
includeroutes,includeworkoutmetadataиworkoutsmetadataintervalработают только приdatatype=workouts- смените тип данных на
workoutsили удалите эти параметры
"Metrics parameter is only valid for healthMetrics data type"
- параметр
metricsработает только приdatatype=healthMetrics - смените тип данных или удалите параметр
metrics
"Invalid metric name"
- используйте точные rawValue MetricName (например «Step Count», «Heart Rate»)
- проверьте написание и регистр
- допустимые имена см. на экране выбора метрик в приложении
"Invalid request timeout"
- значение от 60 до 86400 секунд
- используйте значение из этого диапазона
"A name is required for the automation"
- параметр
nameдолжен быть указан - значение после декодирования URL не должно быть пустым
Ограничения длины URL
Очень длинные URL (особенно со многими метриками или заголовками) могут превышать системные ограничения. Рекомендации:
- указывайте меньше метрик в параметре
metrics - сокращайте число заголовков
- по возможности используйте более короткие значения параметров
- разбивайте сложную конфигурацию на несколько более простых автоматизаций
Приоритет параметров
При конфликте параметров:
- выбор типа данных (
datatype) автоматически сбрасывает связанные флаги включения - формат CSV (
format=csv) автоматически задаётaggregatedata=true - режим реального времени (
period=realtime) требуетsyncinterval=seconds - несовместимые комбинации вызывают ошибки валидации
Лучшие практики
Автоматическая синхронизация (когда автоматизации запускаются через диплинки):
- заряжайте устройство и используйте Трансляцию iPhone на Mac (iPhone Mirroring)
- при зарядке iOS меньше ограничивает производительность устройства, поэтому данные могут синхронизироваться чаще
- при трансляции iPhone на Mac устройство ведёт себя как при разблокированном экране: данные о здоровье доступны Health Auto Export для автоматических действий
- заряжайте устройство и используйте Трансляцию iPhone на Mac (iPhone Mirroring)
Всегда URL-кодируйте значения параметров со спецсимволами
Сначала проверьте простые URL, затем усложняйте конфигурацию
Используйте понятные имена для удобной идентификации
Проверяйте URL перед программной генерацией диплинков
Корректно обрабатывайте ошибки при разборе диплинков
Документируйте форматы диплинков, если создаёте инструменты, которые их генерируют
Учитывайте длину URL при большом числе метрик или заголовков
Тестируйте на реальных устройствах, а не только в симуляторе
См. также
- Руководство по автоматизации REST API — подробно об автоматизациях REST API
- Обзор автоматизаций — общие принципы автоматизаций
- Руководство по ручному экспорту — как вручную экспортировать данные
Поддержка
Если вы столкнулись с проблемой, которая не описана в этом руководстве:
- прочитайте сообщение об ошибке — в нём могут быть указаны проблемные параметры
- проверьте корректность URL-кодирования
- сначала протестируйте минимальный URL
- для помощи используйте кнопку чата поддержки в приложении