جدول زیر شامل لیست کامل انواع دادهها است، به همراه چندین ستون که به شما در درک نحوه نمایش هر نوع در API گوگل هلث و همچنین دامنه دسترسی هر کدام کمک میکند.
نوع دادهdataTypeپارامتر filter | موجود است عملیات | محدوده |
|---|---|---|
| انرژی فعال سوزانده شده | فهرست کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
دقایق فعالactive-minutesactive_minutes نوع رکورد: فاصلهای دستگاههای سازگار
| فهرست کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
صورتجلسات منطقه فعالactive-zone-minutesactive_zone_minutes نوع رکورد: فاصلهای دستگاههای سازگار
| فهرست کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
| سطح فعالیت | فهرست کردن، تطبیق دادن | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
ارتفاعaltitudealtitude نوع رکورد: فاصلهای | فهرست کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
| قند خون | فهرست کردن، دریافت کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
| چربی بدن | فهرست کردن، دریافت کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه، ایجاد کردن، بهروزرسانی کردن، حذف دستهای | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
| کالری در منطقه ضربان قلب | رولآپ، رولآپ روزانه | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
| دمای مرکزی بدن | فهرست کردن، دریافت کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
تغییرپذیری روزانه ضربان قلبdaily-heart-rate-variabilitydaily_heart_rate_variability نوع ثبت: روزانه دستگاههای سازگار
| فهرست کردن، تطبیق دادن | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
محدودههای ضربان قلب روزانهdaily-heart-rate-zonesdaily_heart_rate_zones نوع ثبت: روزانه راهنمای پشتیبانی از وب هوک برای موارد حیاتی | فهرست کردن، تطبیق دادن | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
اشباع اکسیژن روزانهdaily-oxygen-saturationdaily_oxygen_saturation نوع ثبت: روزانه دستگاههای سازگار
| فهرست کردن، تطبیق دادن | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
میزان تنفس روزانهdaily-respiratory-ratedaily_respiratory_rate نوع ثبت: روزانه دستگاههای سازگار
| فهرست کردن، تطبیق دادن | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
ضربان قلب در حالت استراحت روزانهdaily-resting-heart-ratedaily_resting_heart_rate نوع ثبت: روزانه راهنمای پشتیبانی از وب هوک برای موارد حیاتی دستگاههای سازگار
| فهرست کردن، تطبیق دادن | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
مشتقات دمای خواب روزانهdaily-sleep-temperature-derivationsdaily_sleep_temperature_derivations نوع ثبت: روزانه دستگاههای سازگار
| فهرست کردن، تطبیق دادن | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
حداکثر اکسیژن مصرفی روزانه (VO2 Max)daily-vo2-maxdaily_vo2_max نوع ثبت: روزانه دستگاههای سازگار
| فهرست کردن، تطبیق دادن | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
فاصلهdistancedistance نوع رکورد: فاصلهای دستگاههای سازگار
| فهرست کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
الکتروکاردیوگرام (ECG)electrocardiogramelectrocardiogram نوع رکورد: جلسه دستگاههای سازگار
| فهرست | .ecg.readonly |
ورزشexerciseexercise نوع رکورد: جلسه دستگاههای سازگار
| لیست کردن، دریافت کردن، تطبیق دادن، ایجاد کردن، بهروزرسانی کردن، حذف دستهای | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
طبقاتfloorsfloors نوع رکورد: فاصلهای | آشتی دادن، جمع کردن، روزانه جمع کردن | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
| غذا | فهرست کردن، دریافت کردن | .nutrition.readonly.nutrition.writeonly |
واحد اندازهگیری غذاfood-measurement-unitfood_measurement_unit نوع رکورد: غذا دستگاههای سازگار
| فهرست کردن، دریافت کردن | .nutrition.readonly.nutrition.writeonly |
ضربان قلبheart-rateheart_rate نوع رکورد: نمونه راهنمای پشتیبانی از وب هوک برای موارد حیاتی دستگاههای سازگار
| فهرست کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
تغییرپذیری ضربان قلبheart-rate-variabilityheart_rate_variability نوع رکورد: نمونه دستگاههای سازگار
| فهرست کردن، تطبیق دادن | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
| ارتفاع | لیست کردن، دریافت کردن، تطبیق دادن، ایجاد کردن، بهروزرسانی کردن، حذف دستهای | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
| گزارش هیدراتاسیون | فهرست کردن، دریافت کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه، ایجاد کردن، بهروزرسانی کردن، حذف دستهای | .nutrition.readonly.nutrition.writeonly |
| اعلان ریتم نامنظم | فهرست | .irn.readonly |
دوره قاعدگیmenstrual-periodmenstrual_period نوع رکورد: فاصلهای | ایجاد، بهروزرسانی، حذف دستهای | .reproductive_health.writeonly |
خلق و خوmoodsmoods نوع رکورد: نمونه | ایجاد، بهروزرسانی، حذف دستهای | .mindfulness.writeonly |
گزارش تغذیهnutrition-lognutrition_log نوع رکورد: نمونه دستگاههای سازگار
| فهرست کردن، دریافت کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه، ایجاد کردن، بهروزرسانی کردن، حذف دستهای | .nutrition.readonly.nutrition.writeonly |
آزمایش تخمک گذاریovulation-testovulation_test نوع رکورد: نمونه | ایجاد، بهروزرسانی، حذف دستهای | .reproductive_health.writeonly |
اشباع اکسیژنoxygen-saturationoxygen_saturation نوع رکورد: نمونه دستگاههای سازگار
| فهرست کردن، تطبیق دادن | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
خلاصه خواب با نرخ تنفسrespiratory-rate-sleep-summaryrespiratory_rate_sleep_summary نوع رکورد: نمونه دستگاههای سازگار
| فهرست کردن، تطبیق دادن | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
حداکثر اکسیژن مصرفی (VO2 Max) را بدویدrun-vo2-maxrun_vo2_max نوع رکورد: نمونه دستگاههای سازگار
| فهرست کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
دوره کم تحرکیsedentary-periodsedentary_period نوع رکورد: فاصلهای دستگاههای سازگار
| فهرست کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
خوابsleepsleep نوع رکورد: جلسه دستگاههای سازگار
| لیست کردن، دریافت کردن، تطبیق دادن، ایجاد کردن، بهروزرسانی کردن، حذف دستهای | .sleep.readonly.sleep.writeonly |
مراحلstepssteps نوع رکورد: فاصلهای دستگاههای سازگار
| فهرست کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
دادههای طول شناswim-lengths-dataswim_lengths_data نوع رکورد: فاصلهای دستگاههای سازگار
| فهرست کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
علائمsymptomssymptoms نوع رکورد: نمونه | ایجاد، بهروزرسانی، حذف دستهای | .logged_symptoms.writeonly |
| زمان در منطقه ضربان قلب | فهرست کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
کل کالریtotal-caloriestotal_calories نوع رکورد: فاصلهای دستگاههای سازگار
| رولآپ، رولآپ روزانه | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
حداکثر اکسیژن مصرفی (VO2 Max)vo2-maxvo2_max نوع رکورد: نمونه دستگاههای سازگار
| فهرست کردن، تطبیق دادن | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
| وزن | فهرست کردن، دریافت کردن، تطبیق دادن، جمع کردن، جمع کردن روزانه، ایجاد کردن، بهروزرسانی کردن، حذف دستهای | .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 ، به دلایل زیر به عنوان واحد استاندارد بر حسب میلیمتر اندازهگیری میشوند:
- حفظ دقت دادهها : مهمترین دلیل استفاده از میلیمتر، اطمینان از این است که هیچ دقتی در دادههایی که میخوانیم و ارائه میدهیم از دست ندهیم. استفاده از یک واحد دقیق مانند میلیمتر به ما این امکان را میدهد که اندازهگیریها را با دقت بالا نمایش دهیم.
- استانداردسازی : میلیمتر واحد استاندارد طراحیشده در سراسر سرویسهای ما است. این سازگاری به تضمین یک تجربه یکسان برای توسعهدهندگان در تعامل با بخشهای مختلف API کمک میکند.
- پشتیبانی گسترده از سیستمهای اندازهگیری : استفاده از یک واحد پایه مانند میلیمتر، تبدیل به هر واحد انتخابی دیگری را برای توسعهدهندگان، صرف نظر از اینکه با سیستمهای اندازهگیری متریک، امپریال یا سایر سیستمها کار میکنند، ساده میکند.
طول متغیر روز
مدیریت زمان توسط Health API، زمان کاربر را برای در نظر گرفتن طولهای متغیر روز ناشی از تغییر ساعت تابستانی یا سفر، در اولویت قرار میدهد. هر نقطه داده با یک مهر زمانی فیزیکی UTC و همچنین انحراف UTC فعال در زمان رویداد ذخیره میشود. این به سیستم اجازه میدهد تا:
- رویداد را به یک لحظه فیزیکی دقیق نگاشت کنید.
- برای تجمیع، زمان را با توجه به زمینه محلی کاربر اصلاح کنید.
ساعت تابستانی
وقتی زمان تابستانی تغییر میکند، یک «عقبنشینی» منجر به یک روز مدنی ۲۵ ساعته میشود و فهرست مربوط به آن تاریخ شامل ۲۵ ساعت داده خواهد بود. یک «جلو بردن» منجر به یک روز مدنی ۲۳ ساعته میشود که در آن زمان به زمان استاندارد برمیگردد.
سفر
سفر در مناطق زمانی مختلف میتواند تغییرات قابل توجهتری را در مدت زمان فیزیکی یک روز مدنی ایجاد کند.
از نقطه پایانی dailyRollUp برای تطبیق تفاوتهای منطقه زمانی استفاده کنید. این نقطه به طور خودکار دادهها را به روز تقویمی که در آن ثبت شدهاند، طبق زمان محلی کاربر نسبت میدهد و عملاً روز را با وجود تغییرات منطقه زمانی به هم "میچسباند".