أنواع بيانات Google Health API

يتضمّن الجدول التالي القائمة الكاملة لأنواع البيانات، مع عدّة أعمدة لمساعدتك في فهم طريقة عرض كل نوع في Google Health API، بالإضافة إلى النطاق الذي يتوفّر فيه كل نوع.

الجدول: أنواع بيانات Google Health API
نوع البيانات
  dataType
  filter المَعلمة

العمليات المتاحة
النطاق
السعرات الحرارية المحروقة أثناء النشاط البدني
active-energy-burned
active_energy_burned
نوع السجلّ: الفاصل الزمني
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
دقائق النشاط
active-minutes
active_minutes
نوع السجلّ: الفاصل الزمني

الأجهزة المتوافقة

  • Fitbit Air
  • Fitbit Alta
  • Fitbit Alta HR
  • Fitbit Blaze
  • Fitbit Charge 2
  • Fitbit Charge 3
  • Fitbit Flex 2
  • Fitbit Inspire
  • ‫Fitbit Inspire HR
  • Pixel Watch 4
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
دقائق قسم النشاط
active-zone-minutes
active_zone_minutes
نوع السجلّ: الفاصل الزمني

الأجهزة المتوافقة

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
مستوى النشاط
activity-level
activity_level
نوع السجلّ: الفاصل الزمني
قائمة، تسوية .activity_and_fitness.readonly
.activity_and_fitness.writeonly
الارتفاع
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
الغلوكوز في الدم
blood-glucose
blood_glucose
نوع السجلّ: عينة
list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
دهون الجسم
body-fat
body_fat
نوع السجلّ: عينة

الأجهزة المتوافقة

list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
السعرات الحرارية في منطقة معدّل نبضات القلب
calories-in-heart-rate-zone
calories_in_heart_rate_zone
نوع السجلّ: الفاصل الزمني
rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
درجة حرارة الجسم الأساسية
core-body-temperature
core_body_temperature
نوع السجلّ: عينة
list, get, reconcile, rollup, dailyRollup .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
الحد الأقصى لاستهلاك الأكسجين يوميًا
daily-vo2-max
daily_vo2_max
نوع السجلّ: يومي

الأجهزة المتوافقة

قائمة، تسوية .activity_and_fitness.readonly
.activity_and_fitness.writeonly
المسافة
distance
distance
نوع السجلّ: الفاصل الزمني

الأجهزة المتوافقة

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
تخطيط القلب الكهربائي (ECG)
electrocardiogram
electrocardiogram
نوع السجلّ: الجلسة

الأجهزة المتوافقة

قائمة .ecg.readonly
التمارين الرياضية
exercise
exercise
نوع السجلّ: الجلسة

الأجهزة المتوافقة

list, get, reconcile, create, update, batchDelete .activity_and_fitness.readonly
.activity_and_fitness.writeonly
الأدوار
reconcile, rollup, dailyRollup .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
نوع السجلّ: عينة

الأجهزة المتوافقة

list, reconcile, rollup, dailyRollup .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
نوع السجلّ: عينة
list, get, reconcile, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
سجلّ الترطيب
hydration-log
hydration_log
نوع السجلّ: الجلسة
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly
إشعار اضطراب نظم القلب
irregular-rhythm-notification
irregular_rhythm_notification
نوع السجلّ: الجلسة
قائمة .irn.readonly
فترة الدورة الشهرية
menstrual-period
menstrual_period
نوع السجلّ: الفاصل الزمني
create, update, batchDelete .reproductive_health.writeonly
الحالات المزاجية
moods
moods
نوع السجلّ: عينة
create, update, batchDelete .mindfulness.writeonly
سجلّ التغذية
nutrition-log
nutrition_log
نوع السجلّ: عينة

الأجهزة المتوافقة

list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly
اختبار الإباضة
ovulation-test
ovulation_test
نوع السجلّ: عينة
create, update, batchDelete .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
السعة القصوى للأكسجين أثناء الجري
run-vo2-max
run_vo2_max
نوع السجلّ: عينة

الأجهزة المتوافقة

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
فترات الخمول
sedentary-period
sedentary_period
نوع السجلّ: الفاصل الزمني

الأجهزة المتوافقة

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
النوم
sleep
sleep
نوع السجلّ: الجلسة

الأجهزة المتوافقة

list, get, reconcile, create, update, batchDelete .sleep.readonly
.sleep.writeonly
الخطوات
steps
steps
نوع السجلّ: الفاصل الزمني

الأجهزة المتوافقة

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
بيانات أطوال السباحة
swim-lengths-data
swim_lengths_data
نوع السجلّ: الفاصل الزمني

الأجهزة المتوافقة

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
الأعراض
symptoms
symptoms
نوع السجلّ: عينة
create, update, batchDelete .logged_symptoms.writeonly
الوقت المستغرق في منطقة معدّل نبضات القلب
time-in-heart-rate-zone
time_in_heart_rate_zone
نوع السجلّ: الفاصل الزمني
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
إجمالي السعرات الحرارية
total-calories
total_calories
نوع السجلّ: الفاصل الزمني

الأجهزة المتوافقة

rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
السعة القصوى للأكسجين
vo2-max
vo2_max
نوع السجلّ: عينة

الأجهزة المتوافقة

قائمة، تسوية .activity_and_fitness.readonly
.activity_and_fitness.writeonly
الوزن
weight
weight
نوع السجلّ: عينة

الأجهزة المتوافقة

list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly

قيود طلب البحث

عند طلب نقاط البيانات أو عمليات التجميع أو عمليات التجميع اليومية من واجهة برمجة التطبيقات، يجب مراعاة القيود التالية:

  • متطلبات الفلتر: تتطلّب بعض أنواع البيانات المشتقة للقراءة فقط، مثل total-calories، فلترًا يحدّد وقت بدء الفترة (باستخدام الوقت الفعلي أو الوقت المدني).
  • حدود نطاق طلب البحث: تفرض نقاط نهاية التجميع على مستوى كل من البيانات المجمّعة والبيانات المجمّعة اليومية حدودًا قصوى لنطاق طلب البحث استنادًا إلى نوع البيانات:
    • نطاق طلب بحث أقصاه 14 يومًا لكل من calories-in-heart-rate-zone وheart-rate وactive-minutes وtotal-calories
    • نطاق استعلام يبلغ 90 يومًا كحدّ أقصى لجميع أنواع البيانات الأخرى

مدى توفّر البيانات

لا تتوفّر تعديلات على بيانات المستخدم إلا بعد مزامنة جهاز تتبُّع النشاط أو إدخال بيانات جديدة يدويًا في تطبيق Fitbit للأجهزة الجوّالة أو تطبيق الويب. ويمكن لجهاز Fitbit وتطبيق Fitbit للأجهزة الجوّالة إجراء المزامنة تلقائيًا كل 15 دقيقة عندما يكون تطبيق Fitbit مفتوحًا على الجهاز الجوّال ويكون الجهازان متصلَين بشبكة بيانات نشطة وضمن نطاق Bluetooth. إذا كان المستخدم يتتبّع النشاط باستخدام MobileTrack، تتم مزامنة البيانات كل ساعة طالما أنّ التطبيق مفتوح.

الاستعلام عن البيانات السابقة

من المزايا الأساسية لواجهة Google Health API إمكانية تتبُّع أداء المستخدم ومراقبة المؤشرات الحيوية الخاصة بصحته على مدار فترات زمنية طويلة. يمكنك طلب بيانات المستخدمين منذ أن تم تسجيلها، ولا تفرض واجهة برمجة التطبيقات أي قيود على مقدار البيانات السابقة التي يمكن أن يستهلكها تطبيقك.

ومع ذلك، تظل طلبات البحث عن البيانات السابقة خاضعة لحدود المعدّل العادية. لإدارة ثبات النظام ومنع الأحجام الكبيرة من الحِمل، تستخدم Google Health API تقسيم الصفحات تلقائيًا مع أحجام صفحات خاصة بنقاط النهاية. يُرجى ملاحظة الحدود والسلوك التاليَين:

  • تقسيم النتائج على عدّة صفحات تلقائيًا: إذا طلبت نطاقًا طويلاً من البيانات، ستعرض واجهة برمجة التطبيقات الصفحة الأولى فقط من النتائج، وذلك بما لا يتجاوز الحد الأقصى لحجم الصفحة لنقطة النهاية هذه، بالإضافة إلى nextPageToken. يجب استخدام nextPageToken لطلب الصفحات اللاحقة.
  • أحجام الصفحات المتغيرة: تعتمد حدود التحديد على نقطة النهاية ونوع البيانات. بالنسبة إلى معظم أنواع البيانات، يبلغ الحد الأقصى لحجم الصفحة 10,000. ومع ذلك، بالنسبة إلى أنواع بيانات معيّنة، مثل exercise وsleep، يبلغ الحد الأقصى لحجم الصفحة 25. على سبيل المثال، إذا طلب أحد العملاء جميع بيانات النوم خلال السنوات الـ 10 الماضية، ستعرض واجهة برمجة التطبيقات 25 جلسة نوم فقط في الصفحة الأولى.
  • قيود النطاق الزمني لعمليات التجميع: بالنسبة إلى نقاط نهاية تجميع البيانات (مثل rollUp وdailyRollUp)، تكون النطاقات الزمنية للاستعلامات مقيّدة استنادًا إلى نوع البيانات:
    • نطاق زمني أقصاه 14 يومًا لكل من calories-in-heart-rate-zone وheart-rate وactive-minutes وtotal-calories
    • نطاق زمني أقصاه 90 يومًا لجميع أنواع البيانات المجمّعة الأخرى

استنادًا إلى حجم البيانات السابقة التي يحتاجها تطبيقك، سيتطلّب استرداد مجموعة البيانات بأكملها تقسيمها إلى صفحات بالتسلسل. يجب مراعاة ذلك عند تصميم عملية مزامنة البيانات في تطبيقك.

لضمان الأداء الأمثل وتجنُّب أخطاء واجهة برمجة التطبيقات، اتّبِع الإرشادات التالية عند طلب بيانات سابقة:

مزامنة البيانات على مراحل (التحميل السريع مقابل التحميل البطيء)

  • التحميل الأوّلي "السريع": يتم جلب وعرض بيانات آخر 7 إلى 14 يومًا فقط خلال تسلسل التحميل الأساسي. يضمن ذلك أن يرى المستخدمون البيانات على الفور بدون انتظار الاستعلامات التي تستغرق وقتًا طويلاً.
  • التحميل "البارد" في الخلفية: تفويض عملية استرداد البيانات السابقة إلى قائمة انتظار غير متزامنة ذات أولوية أقل أو عملية في الخلفية بعد عرض واجهة المستخدم الأساسية.

تقسيم طلب البحث لتجميع البيانات

  • بما أنّ نقاط نهاية التجميع والتجميع اليومي تفرض حدًا أقصى للنطاق الزمني (14 أو 90 يومًا حسب نوع البيانات)، عليك تقسيم طلبات البحث الكبيرة الخاصة بالتجميع السابق إلى فواصل زمنية أصغر ومتسلسلة ضمن هذه الحدود.
  • يمكنك معالجة الطلبات الفرعية هذه على شكل دفعات أو تسلسل بأمان للالتزام بحدود التنفيذ المتزامن والحفاظ على مؤشرات التقدّم الثابتة في واجهة المستخدم.

الاستفادة من عمليات التجميع المُسبقة

إعادة هيكلة لوحات البيانات الخاصة بالنظرة العامة ومخططات المؤشرات لاستخدام نقاط نهاية مجمّعة مسبقًا وملخّصة (مثل DailyRollUpDataPoints)، ما سيؤدي إلى تقليل الحمل الزائد للحوسبة بشكل كبير في الخلفية ووقت نقل البيانات إلى العميل عبر الشبكة

معالجة الأخطاء بشكل مرن (إعادة المحاولة بذكاء)

  • يجب تنفيذ معالجة صارمة للتراجع الأسي عند مواجهة حدود المعدّل (429 Too Many Requests) ومهلات بوابة الخادم (504 Gateway Timeout)، وعدم إعادة محاولة إرسال الحِزم الكبيرة التي تعذّر إرسالها على الفور. تؤدي عمليات إعادة المحاولة الفورية إلى زيادة الازدحام في الخلفية وتفاقم تدهور أداء النظام.

إمكانية وصول الجهات الخارجية

لا يمكن لأجهزة Fitbit التواصل مباشرةً مع التطبيقات أو الخدمات التابعة لجهات خارجية. تم تصميم هذه الأجهزة للتواصل والمزامنة حصريًا مع تطبيق Fitbit للأجهزة الجوّالة.

تتم مزامنة البيانات تلقائيًا على مدار اليوم عندما يكون تطبيق Fitbit مفتوحًا، أو كل 15 دقيقة إذا كان البلوتوث نشطًا وكان التطبيق يعمل في الخلفية. بعد اكتمال عملية المزامنة هذه، تصبح البيانات متاحة للخدمات التابعة لجهات خارجية من خلال Google Health API.

معايير المسافة

يتم قياس مسافات التمارين، مثل elevationGainMillimeters، بالملليمترات كوحدة قياس معيارية للأسباب التالية:

  1. الحفاظ على دقة البيانات: السبب الأكثر أهمية لاستخدام الملليمترات هو ضمان عدم فقدان أي دقة في البيانات التي نقرأها ونقدّمها. يتيح لنا استخدام وحدة دقيقة مثل المليمترات تمثيل القياسات بدقة عالية.
  2. توحيد المقاييس: المليمتر هو وحدة القياس الموحّدة المحدّدة في جميع خدماتنا. ويساعد هذا الاتساق في ضمان تجربة موحّدة للمطوّرين الذين يتفاعلون مع أجزاء مختلفة من واجهة برمجة التطبيقات.
  3. توافق نظام القياس الواسع النطاق: يسهّل استخدام وحدة أساسية مثل المليمترات على المطوّرين التحويل إلى أي وحدة أخرى يختارونها، بغض النظر عمّا إذا كانوا يعملون بنظام القياس المتري أو الإمبراطوري أو غيرهما من أنظمة القياس.

اختلاف طول النهار

تعطي Health API الأولوية للوقت الذي يحدّده المستخدم من أجل احتساب مدد الأيام المتغيرة الناتجة عن التوقيت الصيفي أو السفر. يتم تخزين كل نقطة بيانات مع طابع زمني فعلي بالتوقيت العالمي المنسَّق (UTC) وإزاحة التوقيت العالمي المنسَّق النشطة في وقت وقوع الحدث. يتيح ذلك للنظام ما يلي:

  • ربط الحدث بلحظة زمنية محددة.
  • تصحيح الوقت حسب السياق المحلي للمستخدم من أجل التجميع

نظام التوقيت الصيفي

عندما يتم تطبيق نظام التوقيت الصيفي، يؤدي "الرجوع إلى التوقيت العادي" إلى يوم مدني مدته 25 ساعة، وستتضمّن مجموعة الحسابات لهذا التاريخ 25 ساعة من البيانات. يؤدي "التقديم" إلى يوم مدني مدته 23 ساعة حيث يتم إعادة ضبط الوقت إلى التوقيت العادي.

سفر

ويمكن أن يؤدي السفر عبر المناطق الزمنية إلى اختلافات أكبر في المدة الفعلية ليوم مدني واحد.

استخدِم نقطة النهاية dailyRollUp لتسوية اختلافات المناطق الزمنية. ويتم تلقائيًا ربط البيانات بيوم التقويم الذي تم تسجيلها فيه وفقًا للتوقيت المحلي للمستخدم، ما يؤدي إلى "تجميع" اليوم معًا على الرغم من تغيُّر المنطقة الزمنية.