انواع داده‌های API سلامت گوگل

جدول زیر شامل لیست کامل انواع داده‌ها است، به همراه چندین ستون که به شما در درک نحوه نمایش هر نوع در API گوگل هلث و همچنین دامنه دسترسی هر کدام کمک می‌کند.

جدول: انواع داده‌های API سلامت گوگل
نوع داده
dataType
پارامتر filter
موجود است
عملیات
محدوده
انرژی فعال سوزانده شده
active-energy-burned
active_energy_burned
نوع رکورد: فاصله‌ای
فهرست کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه .activity_and_fitness.readonly
.activity_and_fitness.writeonly
دقایق فعال
active-minutes
active_minutes
نوع رکورد: فاصله‌ای

دستگاه‌های سازگار

  • فیت‌بیت ایر
  • فیت‌بیت آلتا
  • فیت‌بیت آلتا اچ‌آر
  • فیت‌بیت بلیز
  • فیت‌بیت شارژ ۲
  • فیت‌بیت شارژ ۳
  • فیت‌بیت فلکس ۲
  • فیت‌بیت اینسپایر
  • فیت‌بیت اینسپایر اچ‌آر
  • پیکسل واچ ۴
فهرست کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه .activity_and_fitness.readonly
.activity_and_fitness.writeonly
صورتجلسات منطقه فعال
active-zone-minutes
active_zone_minutes
نوع رکورد: فاصله‌ای

دستگاه‌های سازگار

فهرست کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه .activity_and_fitness.readonly
.activity_and_fitness.writeonly
سطح فعالیت
activity-level
activity_level
نوع رکورد: فاصله‌ای
فهرست کردن، تطبیق دادن .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ارتفاع
فهرست کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه .activity_and_fitness.readonly
.activity_and_fitness.writeonly
قند خون
blood-glucose
blood_glucose
نوع رکورد: نمونه
راهنمای پشتیبانی از وب هوک برای موارد حیاتی
فهرست کردن، دریافت کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
چربی بدن
body-fat
body_fat
نوع رکورد: نمونه

دستگاه‌های سازگار

فهرست کردن، دریافت کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه، ایجاد کردن، به‌روزرسانی کردن، حذف دسته‌ای .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
کالری در منطقه ضربان قلب
calories-in-heart-rate-zone
calories_in_heart_rate_zone
نوع رکورد: فاصله‌ای
رول‌آپ، رول‌آپ روزانه .activity_and_fitness.readonly
.activity_and_fitness.writeonly
دمای مرکزی بدن
core-body-temperature
core_body_temperature
نوع رکورد: نمونه
فهرست کردن، دریافت کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
تغییرپذیری روزانه ضربان قلب
daily-heart-rate-variability
daily_heart_rate_variability
نوع ثبت: روزانه

دستگاه‌های سازگار

فهرست کردن، تطبیق دادن .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
محدوده‌های ضربان قلب روزانه
daily-heart-rate-zones
daily_heart_rate_zones
نوع ثبت: روزانه
راهنمای پشتیبانی از وب هوک برای موارد حیاتی
فهرست کردن، تطبیق دادن .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
اشباع اکسیژن روزانه
daily-oxygen-saturation
daily_oxygen_saturation
نوع ثبت: روزانه

دستگاه‌های سازگار

فهرست کردن، تطبیق دادن .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
میزان تنفس روزانه
daily-respiratory-rate
daily_respiratory_rate
نوع ثبت: روزانه

دستگاه‌های سازگار

فهرست کردن، تطبیق دادن .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
ضربان قلب در حالت استراحت روزانه
daily-resting-heart-rate
daily_resting_heart_rate
نوع ثبت: روزانه
راهنمای پشتیبانی از وب هوک برای موارد حیاتی

دستگاه‌های سازگار

فهرست کردن، تطبیق دادن .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
مشتقات دمای خواب روزانه
daily-sleep-temperature-derivations
daily_sleep_temperature_derivations
نوع ثبت: روزانه

دستگاه‌های سازگار

فهرست کردن، تطبیق دادن .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
حداکثر اکسیژن مصرفی روزانه (VO2 Max)
daily-vo2-max
daily_vo2_max
نوع ثبت: روزانه

دستگاه‌های سازگار

فهرست کردن، تطبیق دادن .activity_and_fitness.readonly
.activity_and_fitness.writeonly
فاصله
distance
distance
نوع رکورد: فاصله‌ای

دستگاه‌های سازگار

فهرست کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه .activity_and_fitness.readonly
.activity_and_fitness.writeonly
الکتروکاردیوگرام (ECG)
electrocardiogram
electrocardiogram
نوع رکورد: جلسه

دستگاه‌های سازگار

فهرست .ecg.readonly
ورزش
exercise
exercise
نوع رکورد: جلسه

دستگاه‌های سازگار

لیست کردن، دریافت کردن، تطبیق دادن، ایجاد کردن، به‌روزرسانی کردن، حذف دسته‌ای .activity_and_fitness.readonly
.activity_and_fitness.writeonly
طبقات
آشتی دادن، جمع کردن، روزانه جمع کردن .activity_and_fitness.readonly
.activity_and_fitness.writeonly
غذا
food
food
نوع رکورد: غذا
فهرست کردن، دریافت کردن .nutrition.readonly
.nutrition.writeonly
واحد اندازه‌گیری غذا
food-measurement-unit
food_measurement_unit
نوع رکورد: غذا

دستگاه‌های سازگار

فهرست کردن، دریافت کردن .nutrition.readonly
.nutrition.writeonly
ضربان قلب
heart-rate
heart_rate
نوع رکورد: نمونه
راهنمای پشتیبانی از وب هوک برای موارد حیاتی

دستگاه‌های سازگار

فهرست کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
تغییرپذیری ضربان قلب
heart-rate-variability
heart_rate_variability
نوع رکورد: نمونه

دستگاه‌های سازگار

فهرست کردن، تطبیق دادن .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
ارتفاع
height
height
نوع رکورد: نمونه
لیست کردن، دریافت کردن، تطبیق دادن، ایجاد کردن، به‌روزرسانی کردن، حذف دسته‌ای .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
گزارش هیدراتاسیون
hydration-log
hydration_log
نوع رکورد: جلسه
فهرست کردن، دریافت کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه، ایجاد کردن، به‌روزرسانی کردن، حذف دسته‌ای .nutrition.readonly
.nutrition.writeonly
اعلان ریتم نامنظم
irregular-rhythm-notification
irregular_rhythm_notification
نوع رکورد: جلسه
فهرست .irn.readonly
دوره قاعدگی
menstrual-period
menstrual_period
نوع رکورد: فاصله‌ای
ایجاد، به‌روزرسانی، حذف دسته‌ای .reproductive_health.writeonly
خلق و خو
moods
moods
نوع رکورد: نمونه
ایجاد، به‌روزرسانی، حذف دسته‌ای .mindfulness.writeonly
گزارش تغذیه
nutrition-log
nutrition_log
نوع رکورد: نمونه

دستگاه‌های سازگار

فهرست کردن، دریافت کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه، ایجاد کردن، به‌روزرسانی کردن، حذف دسته‌ای .nutrition.readonly
.nutrition.writeonly
آزمایش تخمک گذاری
ovulation-test
ovulation_test
نوع رکورد: نمونه
ایجاد، به‌روزرسانی، حذف دسته‌ای .reproductive_health.writeonly
اشباع اکسیژن
oxygen-saturation
oxygen_saturation
نوع رکورد: نمونه

دستگاه‌های سازگار

فهرست کردن، تطبیق دادن .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
خلاصه خواب با نرخ تنفس
respiratory-rate-sleep-summary
respiratory_rate_sleep_summary
نوع رکورد: نمونه

دستگاه‌های سازگار

فهرست کردن، تطبیق دادن .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
حداکثر اکسیژن مصرفی (VO2 Max) را بدوید
run-vo2-max
run_vo2_max
نوع رکورد: نمونه

دستگاه‌های سازگار

فهرست کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه .activity_and_fitness.readonly
.activity_and_fitness.writeonly
دوره کم تحرکی
sedentary-period
sedentary_period
نوع رکورد: فاصله‌ای

دستگاه‌های سازگار

فهرست کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه .activity_and_fitness.readonly
.activity_and_fitness.writeonly
خواب
sleep
sleep
نوع رکورد: جلسه

دستگاه‌های سازگار

لیست کردن، دریافت کردن، تطبیق دادن، ایجاد کردن، به‌روزرسانی کردن، حذف دسته‌ای .sleep.readonly
.sleep.writeonly
مراحل
steps
steps
نوع رکورد: فاصله‌ای

دستگاه‌های سازگار

فهرست کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه .activity_and_fitness.readonly
.activity_and_fitness.writeonly
داده‌های طول شنا
swim-lengths-data
swim_lengths_data
نوع رکورد: فاصله‌ای

دستگاه‌های سازگار

فهرست کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه .activity_and_fitness.readonly
.activity_and_fitness.writeonly
علائم
symptoms
symptoms
نوع رکورد: نمونه
ایجاد، به‌روزرسانی، حذف دسته‌ای .logged_symptoms.writeonly
زمان در منطقه ضربان قلب
time-in-heart-rate-zone
time_in_heart_rate_zone
نوع رکورد: فاصله‌ای
فهرست کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه .activity_and_fitness.readonly
.activity_and_fitness.writeonly
کل کالری
total-calories
total_calories
نوع رکورد: فاصله‌ای

دستگاه‌های سازگار

رول‌آپ، رول‌آپ روزانه .activity_and_fitness.readonly
.activity_and_fitness.writeonly
حداکثر اکسیژن مصرفی (VO2 Max)
vo2-max
vo2_max
نوع رکورد: نمونه

دستگاه‌های سازگار

فهرست کردن، تطبیق دادن .activity_and_fitness.readonly
.activity_and_fitness.writeonly
وزن
weight
weight
نوع رکورد: نمونه

دستگاه‌های سازگار

فهرست کردن، دریافت کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه، ایجاد کردن، به‌روزرسانی کردن، حذف دسته‌ای .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly

محدودیت‌های پرس‌وجو

هنگام کوئری گرفتن از نقاط داده، رول‌آپ‌ها یا رول‌آپ‌های روزانه از API، محدودیت‌های زیر را در نظر داشته باشید:

  • الزامات فیلتر: برخی از انواع داده‌های مشتق‌شده فقط خواندنی، مانند total-calories ، به فیلتری نیاز دارند که زمان شروع بازه (با استفاده از زمان فیزیکی یا مدنی) را مشخص کند.
  • محدودیت‌های محدوده پرس‌وجو: نقاط پایانی تجمیع Rollup و Daily Rollup، حداکثر محدودیت‌های محدوده پرس‌وجو را بر اساس نوع داده اعمال می‌کنند:
    • حداکثر بازه پرس‌وجو برای calories-in-heart-rate-zone ، heart-rate ، active-minutes و total-calories ۱۴ روز است.
    • حداکثر بازه زمانی پرس‌وجو برای سایر انواع داده‌ها ۹۰ روز است.

در دسترس بودن داده‌ها

به‌روزرسانی داده‌های کاربر تنها پس از همگام‌سازی ردیاب فعالیت یا وارد کردن دستی داده‌های جدید در برنامه موبایل یا وب Fitbit امکان‌پذیر است. دستگاه Fitbit و برنامه موبایل Fitbit می‌توانند به طور خودکار هر ۱۵ دقیقه، زمانی که برنامه Fitbit روی دستگاه تلفن همراه باز است و هر دو دارای اتصال داده فعال و در محدوده بلوتوث هستند، همگام‌سازی شوند. اگر کاربر فعالیت را با استفاده از MobileTrack ردیابی می‌کند، MobileTrack تا زمانی که برنامه باز باشد، هر ساعت همگام‌سازی می‌شود.

پرس‌وجو از داده‌های تاریخی

یکی از مزایای اصلی API گوگل هلث، قابلیت ردیابی عملکرد کاربر و نظارت بر علائم حیاتی سلامت او در بازه‌های زمانی طولانی است. می‌توانید داده‌های کاربر را از زمانی که ثبت شده است، جستجو کنید؛ این API هیچ محدودیت یا قیدی بر میزان داده‌های تاریخی که برنامه شما می‌تواند مصرف کند، اعمال نمی‌کند.

با این حال، جستجوی داده‌های تاریخی هنوز هم توسط محدودیت‌های نرخ استاندارد اداره می‌شود. برای مدیریت پایداری سیستم و جلوگیری از بارگذاری بیش از حد، API سلامت گوگل از صفحه‌بندی خودکار با اندازه‌های صفحه خاص برای هر نقطه پایانی استفاده می‌کند. به مرزها و رفتار زیر توجه کنید:

  • صفحه‌بندی خودکار: اگر شما یک بازه طولانی از داده‌ها را جستجو کنید، API فقط صفحه اول نتایج را تا حداکثر اندازه صفحه برای آن نقطه پایانی، همراه با nextPageToken برمی‌گرداند. برای درخواست صفحات بعدی باید از nextPageToken استفاده کنید.
  • اندازه‌های متغیر صفحه: محدودیت‌های محدودیت به نقطه پایانی و نوع داده بستگی دارد. برای اکثر انواع داده، اندازه صفحه حداکثر 10000 است. با این حال، برای انواع داده خاصی مانند exercise و sleep ، اندازه پیش‌فرض و حداکثر صفحه 25 است. به عنوان مثال، اگر یک کلاینت تمام داده‌های خواب را برای 10 سال گذشته درخواست کند، API همچنان فقط 25 جلسه خواب را در صفحه اول برمی‌گرداند.
  • محدودیت‌های محدوده تاریخ جمع‌بندی: برای نقاط پایانی جمع‌بندی و تجمیع داده‌ها (مانند rollUp و dailyRollUp )، محدوده‌های تاریخ پرس‌وجو بر اساس نوع داده محدود می‌شوند:
    • حداکثر بازه زمانی ۱۴ روز برای calories-in-heart-rate-zone ، heart-rate ، active-minutes و total-calories .
    • حداکثر بازه زمانی ۹۰ روز برای سایر انواع داده‌های rollup.

بسته به حجم داده‌های تاریخی مورد نیاز برنامه شما، بازیابی کل مجموعه داده‌ها نیاز به صفحه‌بندی متوالی صفحات دارد. این نکته را هنگام طراحی فرآیند همگام‌سازی داده‌های برنامه خود در نظر داشته باشید.

برای اطمینان از عملکرد بهینه و جلوگیری از خطاهای API، هنگام جستجوی داده‌های تاریخی، این دستورالعمل‌ها را دنبال کنید:

همگام‌سازی مرحله‌ای داده‌ها (بار گرم در مقابل بار سرد)

  • بارگذاری "داغ" اولیه: در طول توالی بارگذاری اولیه، فقط داده‌های ۷ تا ۱۴ روز اخیر را دریافت و رندر کنید. این تضمین می‌کند که کاربران داده‌ها را فوراً و بدون انتظار برای کوئری‌های طولانی مدت مشاهده می‌کنند.
  • بارگذاری «سرد» پس‌زمینه: بازیابی داده‌های قدیمی‌تر را پس از رندر شدن رابط کاربری اصلی، به یک صف ناهمزمان و با اولویت پایین‌تر یا فرآیند پس‌زمینه واگذار کنید.

قطعه‌بندی پرس‌وجو برای تجمیع

  • از آنجا که نقاط پایانی rollup و daily rollup حداکثر محدوده تاریخ (۱۴ یا ۹۰ روز بسته به نوع داده) را اعمال می‌کنند، شما باید پرس‌وجوهای تجمیع تاریخی بزرگ را به فواصل زمانی کوچک‌تر و متوالی در این محدوده‌ها تقسیم کنید.
  • این زیرپرس‌وجوها را با خیال راحت دسته‌بندی یا مرتب کنید تا محدودیت‌های همزمانی رعایت شود و شاخص‌های پیشرفت رابط کاربری ثابتی حفظ شوند.

از رول‌آپ‌های از پیش تجمیع‌شده استفاده کنید

داشبوردهای نمای کلی و نمودارهای روند را برای استفاده از نقاط پایانی از پیش تجمیع‌شده و خلاصه (مانند DailyRollUpDataPoints ) بازسازی کنید. این کار به طور چشمگیری سربار محاسباتی در backend و زمان انتقال شبکه به کلاینت را کاهش می‌دهد.

مدیریت خطای انعطاف‌پذیر (تلاش‌های مجدد هوشمند)

  • هنگام مواجهه با محدودیت‌های نرخ ( 429 Too Many Requests ) و زمان‌های وقفه دروازه سرور ( 504 Gateway Timeout ) ، مدیریت دقیق بازگشت نمایی را پیاده‌سازی کنید. هرگز بلافاصله بارهای بزرگ و ناموفق را دوباره امتحان نکنید. تلاش‌های مجدد فوری، ازدحام backend را چند برابر کرده و باعث تخریب سیستم می‌شوند.

دسترسی شخص ثالث

دستگاه‌های Fitbit نمی‌توانند مستقیماً با برنامه‌ها یا سرویس‌های شخص ثالث ارتباط برقرار کنند. این دستگاه‌ها طوری طراحی شده‌اند که منحصراً با برنامه تلفن همراه Fitbit ارتباط برقرار کرده و همگام‌سازی شوند.

دستگاه به‌طور خودکار در طول روز، هر زمان که برنامه Fitbit باز باشد، یا هر ۱۵ دقیقه اگر بلوتوث فعال باشد و برنامه در پس‌زمینه اجرا شود، داده‌ها را همگام‌سازی می‌کند. پس از اتمام این فرآیند همگام‌سازی، داده‌ها از طریق API گوگل هلث برای سرویس‌های شخص ثالث در دسترس قرار می‌گیرند.

استانداردهای فاصله

فواصل تمرینی، مانند elevationGainMillimeters ، به دلایل زیر به عنوان واحد استاندارد بر حسب میلی‌متر اندازه‌گیری می‌شوند:

  1. حفظ دقت داده‌ها : مهم‌ترین دلیل استفاده از میلی‌متر، اطمینان از این است که هیچ دقتی در داده‌هایی که می‌خوانیم و ارائه می‌دهیم از دست ندهیم. استفاده از یک واحد دقیق مانند میلی‌متر به ما این امکان را می‌دهد که اندازه‌گیری‌ها را با دقت بالا نمایش دهیم.
  2. استانداردسازی : میلی‌متر واحد استاندارد طراحی‌شده در سراسر سرویس‌های ما است. این سازگاری به تضمین یک تجربه یکسان برای توسعه‌دهندگان در تعامل با بخش‌های مختلف API کمک می‌کند.
  3. پشتیبانی گسترده از سیستم‌های اندازه‌گیری : استفاده از یک واحد پایه مانند میلی‌متر، تبدیل به هر واحد انتخابی دیگری را برای توسعه‌دهندگان، صرف نظر از اینکه با سیستم‌های اندازه‌گیری متریک، امپریال یا سایر سیستم‌ها کار می‌کنند، ساده می‌کند.

طول متغیر روز

مدیریت زمان توسط Health API، زمان کاربر را برای در نظر گرفتن طول‌های متغیر روز ناشی از تغییر ساعت تابستانی یا سفر، در اولویت قرار می‌دهد. هر نقطه داده با یک مهر زمانی فیزیکی UTC و همچنین انحراف UTC فعال در زمان رویداد ذخیره می‌شود. این به سیستم اجازه می‌دهد تا:

  • رویداد را به یک لحظه فیزیکی دقیق نگاشت کنید.
  • برای تجمیع، زمان را با توجه به زمینه محلی کاربر اصلاح کنید.

ساعت تابستانی

وقتی زمان تابستانی تغییر می‌کند، یک «عقب‌نشینی» منجر به یک روز مدنی ۲۵ ساعته می‌شود و فهرست مربوط به آن تاریخ شامل ۲۵ ساعت داده خواهد بود. یک «جلو بردن» منجر به یک روز مدنی ۲۳ ساعته می‌شود که در آن زمان به زمان استاندارد برمی‌گردد.

سفر

سفر در مناطق زمانی مختلف می‌تواند تغییرات قابل توجه‌تری را در مدت زمان فیزیکی یک روز مدنی ایجاد کند.

از نقطه پایانی dailyRollUp برای تطبیق تفاوت‌های منطقه زمانی استفاده کنید. این نقطه به طور خودکار داده‌ها را به روز تقویمی که در آن ثبت شده‌اند، طبق زمان محلی کاربر نسبت می‌دهد و عملاً روز را با وجود تغییرات منطقه زمانی به هم "می‌چسباند".