يتضمّن الجدول التالي القائمة الكاملة لأنواع البيانات، مع عدّة أعمدة لمساعدتك في فهم طريقة عرض كل نوع في Google Health API، بالإضافة إلى النطاق الذي يتوفّر فيه كل نوع.
نوع البياناتdataType
filter المَعلمة |
العمليات المتاحة |
النطاق |
|---|---|---|
|
السعرات الحرارية المحروقة أثناء النشاط البدني
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
دقائق النشاط
active-minutesactive_minutes
نوع السجلّ: الفاصل الزمني
الأجهزة المتوافقة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
دقائق قسم النشاط
active-zone-minutesactive_zone_minutes
نوع السجلّ: الفاصل الزمني
الأجهزة المتوافقة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
مستوى النشاط
|
قائمة، تسوية | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
الارتفاع
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
الغلوكوز في الدم
|
list, get, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
دهون الجسم
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
السعرات الحرارية في منطقة معدّل نبضات القلب
calories-in-heart-rate-zonecalories_in_heart_rate_zone
نوع السجلّ: الفاصل الزمني
|
rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
درجة حرارة الجسم الأساسية
|
list, get, reconcile, rollup, dailyRollup | .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 |
الحد الأقصى لاستهلاك الأكسجين يوميًا
daily-vo2-maxdaily_vo2_max
نوع السجلّ: يومي
الأجهزة المتوافقة
|
قائمة، تسوية | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
المسافة
distancedistance
نوع السجلّ: الفاصل الزمني
الأجهزة المتوافقة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
تخطيط القلب الكهربائي (ECG)
electrocardiogramelectrocardiogram
نوع السجلّ: الجلسة
الأجهزة المتوافقة
|
قائمة | .ecg.readonly |
التمارين الرياضية
exerciseexercise
نوع السجلّ: الجلسة
الأجهزة المتوافقة
|
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 |
|
الطعام
|
قائمة، الحصول على | .nutrition.readonly.nutrition.writeonly |
وحدة قياس الطعام
food-measurement-unitfood_measurement_unit
نوع السجلّ: طعام
الأجهزة المتوافقة
|
قائمة، الحصول على | .nutrition.readonly.nutrition.writeonly |
معدّل نبضات القلب
heart-rateheart_rate
نوع السجلّ: عينة
الأجهزة المتوافقة
|
list, reconcile, rollup, dailyRollup | .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 |
|
الارتفاع
|
list, get, reconcile, create, update, batchDelete | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
سجلّ الترطيب
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
إشعار اضطراب نظم القلب
irregular-rhythm-notificationirregular_rhythm_notification
نوع السجلّ: الجلسة
|
قائمة | .irn.readonly |
فترة الدورة الشهرية
menstrual-periodmenstrual_period
نوع السجلّ: الفاصل الزمني
|
create, update, batchDelete | .reproductive_health.writeonly |
الحالات المزاجية
moodsmoods
نوع السجلّ: عينة
|
create, update, batchDelete | .mindfulness.writeonly |
سجلّ التغذية
nutrition-lognutrition_log
نوع السجلّ: عينة
الأجهزة المتوافقة
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
اختبار الإباضة
ovulation-testovulation_test
نوع السجلّ: عينة
|
create, update, batchDelete | .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 |
السعة القصوى للأكسجين أثناء الجري
run-vo2-maxrun_vo2_max
نوع السجلّ: عينة
الأجهزة المتوافقة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
فترات الخمول
sedentary-periodsedentary_period
نوع السجلّ: الفاصل الزمني
الأجهزة المتوافقة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
النوم
sleepsleep
نوع السجلّ: الجلسة
الأجهزة المتوافقة
|
list, get, reconcile, create, update, batchDelete | .sleep.readonly.sleep.writeonly |
الخطوات
stepssteps
نوع السجلّ: الفاصل الزمني
الأجهزة المتوافقة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
بيانات أطوال السباحة
swim-lengths-dataswim_lengths_data
نوع السجلّ: الفاصل الزمني
الأجهزة المتوافقة
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
الأعراض
symptomssymptoms
نوع السجلّ: عينة
|
create, update, batchDelete | .logged_symptoms.writeonly |
|
الوقت المستغرق في منطقة معدّل نبضات القلب
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
إجمالي السعرات الحرارية
total-caloriestotal_calories
نوع السجلّ: الفاصل الزمني
الأجهزة المتوافقة
|
rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
السعة القصوى للأكسجين
vo2-maxvo2_max
نوع السجلّ: عينة
الأجهزة المتوافقة
|
قائمة، تسوية | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
الوزن
|
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 يومًا كحدّ أقصى لجميع أنواع البيانات الأخرى
- نطاق طلب بحث أقصاه 14 يومًا لكل من
مدى توفّر البيانات
لا تتوفّر تعديلات على بيانات المستخدم إلا بعد مزامنة جهاز تتبُّع النشاط أو إدخال بيانات جديدة يدويًا في تطبيق 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 يومًا لجميع أنواع البيانات المجمّعة الأخرى
- نطاق زمني أقصاه 14 يومًا لكل من
استنادًا إلى حجم البيانات السابقة التي يحتاجها تطبيقك، سيتطلّب استرداد مجموعة البيانات بأكملها تقسيمها إلى صفحات بالتسلسل. يجب مراعاة ذلك عند تصميم عملية مزامنة البيانات في تطبيقك.
لضمان الأداء الأمثل وتجنُّب أخطاء واجهة برمجة التطبيقات، اتّبِع الإرشادات التالية عند طلب بيانات سابقة:
مزامنة البيانات على مراحل (التحميل السريع مقابل التحميل البطيء)
- التحميل الأوّلي "السريع": يتم جلب وعرض بيانات آخر 7 إلى 14 يومًا فقط خلال تسلسل التحميل الأساسي. يضمن ذلك أن يرى المستخدمون البيانات على الفور بدون انتظار الاستعلامات التي تستغرق وقتًا طويلاً.
- التحميل "البارد" في الخلفية: تفويض عملية استرداد البيانات السابقة إلى قائمة انتظار غير متزامنة ذات أولوية أقل أو عملية في الخلفية بعد عرض واجهة المستخدم الأساسية.
تقسيم طلب البحث لتجميع البيانات
- بما أنّ نقاط نهاية التجميع والتجميع اليومي تفرض حدًا أقصى للنطاق الزمني (14 أو 90 يومًا حسب نوع البيانات)، عليك تقسيم طلبات البحث الكبيرة الخاصة بالتجميع السابق إلى فواصل زمنية أصغر ومتسلسلة ضمن هذه الحدود.
- يمكنك معالجة الطلبات الفرعية هذه على شكل دفعات أو تسلسل بأمان للالتزام بحدود التنفيذ المتزامن والحفاظ على مؤشرات التقدّم الثابتة في واجهة المستخدم.
الاستفادة من عمليات التجميع المُسبقة
إعادة هيكلة لوحات البيانات الخاصة بالنظرة العامة ومخططات المؤشرات لاستخدام نقاط نهاية مجمّعة مسبقًا وملخّصة (مثل DailyRollUpDataPoints)، ما سيؤدي إلى تقليل الحمل الزائد للحوسبة بشكل كبير في الخلفية ووقت نقل البيانات إلى العميل عبر الشبكة
معالجة الأخطاء بشكل مرن (إعادة المحاولة بذكاء)
- يجب تنفيذ معالجة صارمة للتراجع الأسي عند مواجهة حدود المعدّل (
429 Too Many Requests) ومهلات بوابة الخادم (504 Gateway Timeout)، وعدم إعادة محاولة إرسال الحِزم الكبيرة التي تعذّر إرسالها على الفور. تؤدي عمليات إعادة المحاولة الفورية إلى زيادة الازدحام في الخلفية وتفاقم تدهور أداء النظام.
إمكانية وصول الجهات الخارجية
لا يمكن لأجهزة Fitbit التواصل مباشرةً مع التطبيقات أو الخدمات التابعة لجهات خارجية. تم تصميم هذه الأجهزة للتواصل والمزامنة حصريًا مع تطبيق Fitbit للأجهزة الجوّالة.
تتم مزامنة البيانات تلقائيًا على مدار اليوم عندما يكون تطبيق Fitbit مفتوحًا، أو كل 15 دقيقة إذا كان البلوتوث نشطًا وكان التطبيق يعمل في الخلفية. بعد اكتمال عملية المزامنة هذه، تصبح البيانات متاحة للخدمات التابعة لجهات خارجية من خلال Google Health API.
معايير المسافة
يتم قياس مسافات التمارين، مثل elevationGainMillimeters، بالملليمترات كوحدة قياس معيارية للأسباب التالية:
- الحفاظ على دقة البيانات: السبب الأكثر أهمية لاستخدام الملليمترات هو ضمان عدم فقدان أي دقة في البيانات التي نقرأها ونقدّمها. يتيح لنا استخدام وحدة دقيقة مثل المليمترات تمثيل القياسات بدقة عالية.
- توحيد المقاييس: المليمتر هو وحدة القياس الموحّدة المحدّدة في جميع خدماتنا. ويساعد هذا الاتساق في ضمان تجربة موحّدة للمطوّرين الذين يتفاعلون مع أجزاء مختلفة من واجهة برمجة التطبيقات.
- توافق نظام القياس الواسع النطاق: يسهّل استخدام وحدة أساسية مثل المليمترات على المطوّرين التحويل إلى أي وحدة أخرى يختارونها، بغض النظر عمّا إذا كانوا يعملون بنظام القياس المتري أو الإمبراطوري أو غيرهما من أنظمة القياس.
اختلاف طول النهار
تعطي Health API الأولوية للوقت الذي يحدّده المستخدم من أجل احتساب مدد الأيام المتغيرة الناتجة عن التوقيت الصيفي أو السفر. يتم تخزين كل نقطة بيانات مع طابع زمني فعلي بالتوقيت العالمي المنسَّق (UTC) وإزاحة التوقيت العالمي المنسَّق النشطة في وقت وقوع الحدث. يتيح ذلك للنظام ما يلي:
- ربط الحدث بلحظة زمنية محددة.
- تصحيح الوقت حسب السياق المحلي للمستخدم من أجل التجميع
نظام التوقيت الصيفي
عندما يتم تطبيق نظام التوقيت الصيفي، يؤدي "الرجوع إلى التوقيت العادي" إلى يوم مدني مدته 25 ساعة، وستتضمّن مجموعة الحسابات لهذا التاريخ 25 ساعة من البيانات. يؤدي "التقديم" إلى يوم مدني مدته 23 ساعة حيث يتم إعادة ضبط الوقت إلى التوقيت العادي.
سفر
ويمكن أن يؤدي السفر عبر المناطق الزمنية إلى اختلافات أكبر في المدة الفعلية ليوم مدني واحد.
استخدِم نقطة النهاية dailyRollUp لتسوية اختلافات المناطق الزمنية. ويتم تلقائيًا ربط البيانات بيوم التقويم الذي تم تسجيلها فيه وفقًا للتوقيت المحلي للمستخدم، ما يؤدي إلى "تجميع" اليوم معًا على الرغم من تغيُّر المنطقة الزمنية.