Синхронизация данных Apple Health с REST API
Отправка данных о здоровье на конечную точку REST API.
Last updated: June 9, 2026
На этой странице
- Обзор
- Ограничения:
- Производительность
- Требования
- Настройка
- Имя автоматизации
- Уведомления
- Настройка URL
- Тайм-аут запроса
- HTTP-заголовки
- Настройки типа данных
- Тип данных
- Настройка показателей здоровья
- Настройка тренировок
- Настройки экспорта
- Формат экспорта
- Версия экспорта
- Диапазон дат
- Сводка данных
- Группировка по времени
- Пакетные запросы и большие полезные нагрузки
- Тестирование и проверка
- Проверка формата данных
- Устранение неполадок
- Частые проблемы
- Советы и рекомендации
- Просмотр журналов активности
Руководство по автоматизации REST API
Автоматизации REST API позволяют автоматически экспортировать данные о здоровье в любой веб-сервис, принимающий HTTP POST. Это удобно для интеграции с собственными бэкендами, сторонними API и вебхуками.
Обзор
Автоматизации REST API отправляют данные о здоровье на указанный URL методом HTTP POST. Автоматизация может отправлять данные в формате JSON или CSV; можно задать заголовки для аутентификации и пользовательских метаданных.
Сценарии использования:
- интеграция с собственными бэкенд-сервисами;
- отправка данных на вебхуки;
- синхронизация со сторонними API;
- собственные дашборды и платформы аналитики.
Основные возможности:
- поддержка форматов JSON и CSV;
- пользовательские HTTP-заголовки для аутентификации;
- настраиваемый тайм-аут запроса;
- ручной экспорт исторических данных.
Ограничения:
Доступ к данным о здоровье: Приложениям запрещён доступ к данным о здоровье, пока iPhone заблокирован. Автоматизации выполняются только в периоды, когда устройство разблокировано. Это ограничение Apple, его нельзя обойти. Подробнее
Фоновая обработка: iOS ограничивает фоновую обработку для экономии заряда батареи. Автоматизации зависят от фонового обновления приложений и могут не запускаться сразу, если:
- для приложения отключено фоновое обновление приложений
- устройство в режиме энергосбережения
- устройство длительное время неактивно
- системные ресурсы ограничены
- несколько приложений конкурируют за время фонового выполнения
Производительность
Имейте в виду, что iOS оптимизирован для кратковременных задач на мобильном устройстве с очень строгими ограничениями производительности. Фоновые задачи обычно должны завершиться в течение 30 секунд и ограничены по объёму памяти. Health Auto Export предлагает высокую гибкость и настраиваемость, поэтому важно понимать, как определённые конфигурации влияют на производительность приложения и результаты.
- Конфигурация: Автоматизации, создающие большие объёмы данных, могут привести к завершению процесса системой, и автоматизации перестанут работать в фоне. Следующие конфигурации могут создавать большие объёмы данных:
- Автоматизации, настроенные на экспорт всех показателей здоровья.
- Рекомендация: выбирайте только показатели здоровья, для которых в Apple Health есть сохранённые данные, и только те данные, которые вы действительно планируете использовать. Даже пустые типы данных влияют на производительность. Можно также разделить выбранные показатели между несколькими автоматизациями — это облегчает обработку для системы.
- Автоматизации с группировкой по времени в секундах или минутах или с отключённым суммированием данных. Такие детальные запросы могут долго выполняться и сталкиваться с системными ограничениями.
- Рекомендация: хотя кажется идеальным иметь максимально подробные данные, подумайте, нужен ли такой уровень детализации для каждого показателя или типа данных. Рассмотрите несколько автоматизаций с разными настройками.
- При экспорте тренировок на открытом воздухе, таких как велосипед, бег, походы и т. п. с данными маршрута, GPS и связанные показатели здоровья могут создавать большие объёмы данных.
- Автоматизации, настроенные на экспорт всех показателей здоровья.
- Размер данных: Особенно при экспорте через REST API учитывайте, что большие объёмы данных могут вызывать ошибки сервера. Убедитесь, что ваш бэкенд настроен на обработку объёмов данных, возможно, в несколько сотен мегабайт.
- Частота синхронизации: Добавьте виджет автоматизаций на главный экран, чтобы автоматизации надёжнее работали в фоне (см. Руководство по настройке виджета автоматизаций).
Требования
- действующий URL, принимающий HTTP POST;
- учётные данные для аутентификации (если это требуется на вашей стороне);
- сетевое подключение до вашей конечной точки.
Настройка
Откройте экран Автоматические экспорты в основной навигации, нажмите Новая автоматизация и выберите тип автоматизации REST API.
Имя автоматизации
Введите понятное имя (например, «Мой бэкенд API», «Интеграция с вебхуком»).
Уведомления
Настройте, когда вы хотите получать уведомления:
- Уведомление при обновлении кэша — уведомление, когда кэшированные данные обновлены
- Уведомление при каждом запуске — уведомление при каждом выполнении автоматизации
Настройка URL
Укажите полный URL, на который нужно отправлять данные о здоровье: полный адрес с протоколом (http:// или https://).
Примеры URL:
https://api.example.com/health-datahttps://webhook.site/your-unique-idhttp://localhost:3000/api/health
Примечание: URL должен быть действительным и доступным с устройства. Неверный адрес не даст автоматизации запуститься.
Тайм-аут запроса
Выберите интервал тайм-аута для HTTP-запросов. От этого зависит, как долго приложение будет ждать ответ, прежде чем сочтёт запрос неудачным.
HTTP-заголовки
Добавьте пользовательские HTTP-заголовки для аутентификации или метаданных. Типичные случаи:
- ключи API:
X-API-Key: your-api-key - токены авторизации:
Authorization: Bearer your-token - переопределение типа содержимого:
Content-Type: application/json
Чтобы добавить заголовки:
- Нажмите Добавить заголовки
- Введите ключ заголовка в левом поле
- Введите значение заголовка в правом поле
- Повторите для дополнительных заголовков
Важно: у каждого ключа заголовка должно быть значение. Пустые заголовки игнорируются.
Настройки типа данных
Тип данных
Выберите, какой тип данных о здоровье экспортировать:
- Показатели здоровья — шаги, пульс, сон и другие измерения
- Тренировки — упражнения и фитнес-активности
- Симптомы — симптомы и состояния здоровья
- ЭКГ — записи электрокардиограммы
- Уведомления о пульсе — события высокого/низкого пульса
- Состояние — настроение и психическое состояние (iOS 18.0+)
- Цикл — менструальный цикл и репродуктивное здоровье
- Лекарства — приём лекарств и соблюдение режима (iOS 26.0+)
Настройка показателей здоровья
Если выбраны Показатели здоровья:
Выбор показателей здоровья — укажите, какие метрики включать: все доступные или только выбранные.
Совет: если включать только нужные метрики, обработка быстрее, а объём данных меньше.
Предпочитаемые источники — задайте приоритет источников, когда одну и ту же метрику дают несколько приложений.
Настройка тренировок
Если выбраны Тренировки:
Включать данные маршрута — включите, чтобы добавлять маршруты для тренировок с данными о местоположении.
Включать метрики тренировки — включите, чтобы добавлять метрики, собранные во время тренировки (пульс, калории и т. д.).
Группировка по времени (метрики тренировки) — при использовании версии экспорта 2 и включённых метриках тренировки:
- Минуты — группировка метрик тренировки по минутам
- Секунды — группировка метрик тренировки по секундам
Настройки экспорта
Формат экспорта
Выберите формат экспортируемых данных:
JSON — подробные структуры с вложенными объектами. Удобно для API, баз данных и приложений, которым нужны структурированные данные. В JSON больше деталей для сложных типов данных, например фазы сна и показатели при фибрилляции предсердий.
CSV — табличные данные, которые легко импортировать в таблицы. Удобно для простого анализа или если конечная точка ожидает CSV.
Примечание: заголовок Content-Type выставляется автоматически: application/json для JSON и multipart/form-data для CSV.
Версия экспорта
Выберите версию экспорта. Версионирование позволяет перейти на обновлённый формат в удобном темпе и снижает риск поломок сценариев.
- Версия 1 — прежний формат; используйте, если существующие сценарии зависят от него
- Версия 2 — текущий формат с расширенными данными тренировок и более подробными параметрами метаданных
Диапазон дат
Выберите, за какой период экспортировать данные:
- По умолчанию — синхронизирует данные за полный предыдущий день плюс данные до текущей даты и времени
- С последней синхронизации — при каждой синхронизации экспортирует все данные с момента последнего запуска экспорта до текущей даты и времени
- Сегодня — синхронизирует все данные за текущие сутки до текущего момента
- Вчера — синхронизирует все данные за полные предыдущие сутки
- Предыдущие 7 дней — синхронизирует данные за полные семь предыдущих дней
Сводка данных
При формате JSON и типе данных «Показатели здоровья» можно включить или выключить сводку.
- Вкл. — агрегированные сводки
- Выкл. — по возможности разобранные данные с отдельными точками
Примечание: эта настройка действует только для JSON и показателей здоровья. При CSV или при выборе нескольких метрик данные всегда агрегируются.
Группировка по времени
При формате JSON и включённой сводке данных выберите способ агрегации.
Примечание: CSV всегда агрегирует данные. Агрегация по минутам и секундам сильно увеличивает время обработки и размер данных.
Пакетные запросы и большие полезные нагрузки
При формате JSON включите Пакетные запросы, чтобы отправлять данные в нескольких HTTP-запросах вместо одной большой нагрузки.
- ВКЛ. — Распределяет данные по нескольким запросам. Используйте, если у конечной точки есть ограничения размера, таймауты больших тел или поэтапная обработка.
- ВЫКЛ. — Отправляет все данные одним запросом. Подходит для небольших экспортов и простых вебхуков.
Когда включать пакетную отправку:
- Выбрано много метрик здоровья, длинные диапазоны дат или детальная группировка по времени (минуты/секунды)
- Сводка данных выключена и вы экспортируете несгруппированные метрики
- Сервер возвращает ошибки или таймауты для больших тел POST
Примечания:
- Пакетные запросы применяются только к REST API + JSON (не CSV).
- Пакетная отправка уменьшает нагрузку на запрос, но не убирает получение данных на устройстве; медленные запросы HealthKit могут по-прежнему отображаться как предупреждения в журналах активности. См. Медленные запросы в журналах активности.
Тестирование и проверка
Проверка формата данных
Приложение автоматически добавляет в каждый запрос такие заголовки:
Content-Type— в зависимости от формата экспортаautomation-name— имя автоматизацииautomation-id— уникальный идентификатор автоматизацииautomation-aggregation— выбранная группировка по времениautomation-period— выбранный диапазон датsession-id— уникальный идентификатор каждого запроса
Устранение неполадок
Частые проблемы
Данные не поступают на конечную точку
- проверьте, что URL конечной точки верный;
- убедитесь, что конечная точка принимает POST-запросы;
- проверьте заголовки аутентификации;
- смотрите логи конечной точки на входящие запросы;
- проверьте сетевое подключение
Советы и рекомендации
Автоматическая синхронизация:
- заряжайте устройство и используйте Трансляцию iPhone на Mac (iPhone Mirroring)
- при зарядке iOS меньше ограничивает производительность устройства, поэтому данные могут синхронизироваться чаще
- при трансляции iPhone на Mac устройство ведёт себя как при разблокированном экране: данные о здоровье доступны Health Auto Export для автоматических действий
- заряжайте устройство и используйте Трансляцию iPhone на Mac (iPhone Mirroring)
Производительность:
- подберите подходящую группировку по времени, чтобы сбалансировать детализацию и размер данных;
- выбирайте только нужные метрики
Надёжность:
- задавайте адекватные значения тайм-аута с учётом времени ответа конечной точки;
- регулярно просматривайте журнал активности
Формат данных:
- используйте JSON для структурированных данных и API;
- используйте CSV для простого анализа или работы с таблицами;
- при больших наборах данных или раздельной обработке рассмотрите пакетные запросы
Просмотр журналов активности
- Нажмите Просмотр журналов активности на экране настройки автоматизации.
- Просмотрите запуски (сгруппированы, сначала новые) и разверните события в каждом запуске.
- Различайте предупреждения (например, медленный запрос данных о здоровье) и ошибки (ошибки HTTP, таймауты или сбои чтения HealthKit)—см. Обзор автоматизаций — Журналы активности.
- Успешные REST-загрузки часто показывают сводку с форматом, типом данных, периодом экспорта и диапазоном дат в запуске.
- Поделиться (панель инструментов) экспортирует полный диагностический ZIP Журналы событий приложения для поддержки (как Настройки → Дополнительно).
- Очистить удаляет только журнал активности этой автоматизации.