تطوير تجارب المؤشرات الحيوية والمقاييس الصحية باستخدام Google Health API

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

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

أنواع البيانات المتوافقة

تتيح واجهة برمجة التطبيقات أنواع البيانات التالية لتتبُّع المؤشرات الحيوية ومقاييس الصحة:

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

العمليات المتاحة
النطاق
الغلوكوز في الدم
blood-glucose
blood_glucose
نوع السجلّ: عينة
list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.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
تخطيط القلب الكهربائي (ECG)
electrocardiogram
electrocardiogram
نوع السجلّ: الجلسة

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

قائمة .ecg.readonly
معدّل نبضات القلب
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
إشعار اضطراب نظم القلب
irregular-rhythm-notification
irregular_rhythm_notification
نوع السجلّ: الجلسة
قائمة .irn.readonly
تشبّع الأكسجين
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

متطلبات القراءة فقط

يتم ملء أنواع بيانات المؤشرات الحيوية الفسيولوجية من خلال مزامنة الجهاز أو إدخالات السجلّ اليدوي في تطبيق Fitbit للأجهزة الجوّالة أو تطبيق الويب، وتكون للقراءة فقط من خلال واجهة REST API (لا يمكن كتابتها أو تعديلها مباشرةً من خلال نقاط نهاية Google Health API).

توفّر الأقسام التالية تفاصيل فنية وتنسيقات تمثيل REST لبيانات المؤشرات الحيوية.

معدّل نبضات القلب وصحة القلب

توفّر واجهة برمجة التطبيقات قياسات مفصّلة خلال اليوم وملخّصات يومية لمقاييس معدّل ضربات القلب، وهي:

  • معدّل نبضات القلب (heart-rate): قياسات معدّل نبضات القلب في وقت معيّن، وتتضمّن عدد beatsPerMinute، بالإضافة إلى motionContext للمستخدم (مثل SEDENTARY أو ACTIVE) وsensorLocation (مثل WRIST أو CHEST).
  • معدّل النبض أثناء الراحة اليومي (daily-resting-heart-rate): هو قيمة أساسية يومية لمعدّل النبض أثناء الراحة.
  • تغيُّر معدّل نبضات القلب (heart-rate-variability وdaily-heart-rate-variability): يسجّل هذا النوع الجذر التربيعي لمتوسط مربعات الفروق المتتالية (rmssd) بالمللي ثانية لتمثيل تغيُّر معدّل نبضات القلب.

مثال على تمثيل REST

للاستعلام عن قياسات معدّل نبضات القلب، أرسِل طلب GET إلى نقطة النهاية list.

.

يوضّح المثال التالي نقطة بيانات heart-rate واحدة من القائمة التي تم عرضها:

طلب

GET https://health.googleapis.com/v4/users/me/dataTypes/heart-rate/dataPoints?startTime=2026-04-20T08:00:00Z&endTime=2026-04-20T08:05:00Z
Authorization: Bearer access-token
Accept: application/json

الردّ

{
  "dataPoints": [
    {
      "name": "users/me/dataTypes/heart-rate/dataPoints/hr-123456789",
      "dataSource": {
        "recordingMethod": "ACTIVELY_MEASURED"
      },
      "heartRate": {
        "sampleTime": {
          "physicalTime": "2026-04-20T08:00:00Z",
          "utcOffset": "0s"
        },
        "beatsPerMinute": "72",
        "metadata": {
          "motionContext": "SEDENTARY",
          "sensorLocation": "WRIST"
        }
      }
    }
  ]
}

الغلوكوز في الدم

يمثّل نوع البيانات blood-glucose مستويات سكر الدم لدى المستخدم. تحتوي نقاط قياس مستوى السكر في الدم على التركيز بالمليغرام لكل ديسيلتر (mg/dL)، وسياق الوجبة أو التوقيت، ومعلومات العيّنة.

مثال على تمثيل REST

للاستعلام عن قياسات الغلوكوز في الدم، أرسِل طلب GET إلى نقطة النهاية list. يعرض المثال التالي نقطة بيانات blood-glucose واحدة من القائمة التي تم إرجاعها:

طلب

GET https://health.googleapis.com/v4/users/me/dataTypes/blood-glucose/dataPoints?startTime=2026-04-20T08:00:00Z&endTime=2026-04-20T09:00:00Z
Authorization: Bearer access-token
Accept: application/json

الردّ

{
  "dataPoints": [
    {
      "name": "users/me/dataTypes/blood-glucose/dataPoints/bg-987654321",
      "dataSource": {
        "recordingMethod": "MANUALLY_ENTERED"
      },
      "bloodGlucose": {
        "sampleTime": {
          "physicalTime": "2026-04-20T08:30:00Z",
          "utcOffset": "-25200s"
        },
        "bloodGlucoseMilligramsPerDeciliter": 95.0,
        "measurementSource": "SELF_MONITORING_BLOOD_GLUCOSE",
        "mealType": "BREAKFAST",
        "measurementTiming": "AFTER_MEAL",
        "specimen": "CAPILLARY_BLOOD",
        "notes": "Post-breakfast fingerstick reading"
      }
    }
  ]
}

نسبة الأكسجين في الدم (SpO2)

تتتبّع واجهة برمجة التطبيقات مستويات الأكسجين باستخدام oxygen-saturation (قيم العيّنات خلال اليوم) وdaily-oxygen-saturation (إحصاءات الملخّص اليومي). يتم التعبير عن التركيز كنسبة مئوية كرقم من 0 إلى 100.

مثال على تمثيل REST

للاستعلام عن قياسات نسبة الأكسجين في الدم، أرسِل طلب GET إلى نقطة النهاية list. يوضّح المثال التالي نقطة بيانات oxygen-saturation واحدة من القائمة التي تم إرجاعها:

طلب

GET https://health.googleapis.com/v4/users/me/dataTypes/oxygen-saturation/dataPoints?startTime=2026-04-20T03:00:00Z&endTime=2026-04-20T03:05:00Z
Authorization: Bearer access-token
Accept: application/json

الردّ

{
  "dataPoints": [
    {
      "name": "users/me/dataTypes/oxygen-saturation/dataPoints/spo2-555555",
      "dataSource": {
        "recordingMethod": "ACTIVELY_MEASURED"
      },
      "oxygenSaturation": {
        "sampleTime": {
          "physicalTime": "2026-04-20T03:00:00Z",
          "utcOffset": "0s"
        },
        "percentage": 98.2
      }
    }
  ]
}

درجة الحرارة

يتضمّن تتبُّع درجة الحرارة مقاييس درجة حرارة الجسم الأساسية ومؤشرات درجة حرارة الجلد أثناء النوم:

  • درجة حرارة الجسم الأساسية (core-body-temperature): تسجّل درجة حرارة الأعضاء الداخلية بوحدة درجة مئوية، مع تحديد موقع القياس (مثل ARMPIT أو EAR أو FOREHEAD).
  • البيانات المشتقة من درجة حرارة الجسم أثناء النوم (daily-sleep-temperature-derivations): تُسجَّل التغيّرات في درجة حرارة الجلد بمعدل تكرار عالٍ طوال الليل.

مثال على تمثيل REST

للاستعلام عن قياسات درجة حرارة الجسم الأساسية، أرسِل طلب GET إلى نقطة النهاية list. يوضّح المثال التالي نقطة بيانات core-body-temperature واحدة من القائمة التي تم إرجاعها:

طلب

GET https://health.googleapis.com/v4/users/me/dataTypes/core-body-temperature/dataPoints?startTime=2026-04-20T22:00:00Z&endTime=2026-04-20T23:00:00Z
Authorization: Bearer access-token
Accept: application/json

الردّ

{
  "dataPoints": [
    {
      "name": "users/me/dataTypes/core-body-temperature/dataPoints/cbt-666666",
      "dataSource": {
        "recordingMethod": "ACTIVELY_MEASURED"
      },
      "coreBodyTemperature": {
        "sampleTime": {
          "physicalTime": "2026-04-20T22:30:00Z",
          "utcOffset": "-18000s"
        },
        "temperatureCelsius": 36.8,
        "measurementLocation": "FOREHEAD"
      }
    }
  ]
}

مخطَّط كهربية القلب (ECG) والإشعارات

بالنسبة إلى الأجهزة التي تتضمّن مستشعرات طبية، تعرض واجهة برمجة التطبيقات أنواعًا متقدّمة من بيانات صحة القلب، وهي:

  • مخطَّط كهربية القلب (electrocardiogram): نتائج جلسة تخطيط كهربية القلب أحادي القناة، والتي تتضمّن تصنيفًا (SINUS_RHYTHM وATRIAL_FIBRILLATION وINCONCLUSIVE) ومتوسط معدل ضربات القلب وتردد أخذ العينات وعيّنات الجهد الكهربائي الخام للموجة.
  • إشعار النظم القلبي غير المنتظم (irregular-rhythm-notification): أحداث تنبيه سياقية تشير إلى مؤشرات محتملة للإصابة بالرجفان الأذيني تم رصدها أثناء المراقبة غير النشطة.

مثال على تمثيل REST

لطلب بيانات جلسة تخطيط القلب الكهربائي، أرسِل طلب GET إلى نقطة النهاية list. يوضّح المثال التالي نقطة بيانات electrocardiogram واحدة من القائمة التي تم إرجاعها:

طلب

GET https://health.googleapis.com/v4/users/me/dataTypes/electrocardiogram/dataPoints?startTime=2026-04-20T10:00:00Z&endTime=2026-04-20T10:05:00Z
Authorization: Bearer access-token
Accept: application/json

الردّ

{
  "dataPoints": [
    {
      "name": "users/me/dataTypes/electrocardiogram/dataPoints/ecg-777777",
      "dataSource": {
        "recordingMethod": "ACTIVELY_MEASURED"
      },
      "electrocardiogram": {
        "interval": {
          "startTime": "2026-04-20T10:00:00Z",
          "startUtcOffset": "0s",
          "endTime": "2026-04-20T10:00:30Z",
          "endUtcOffset": "0s"
        },
        "resultClassification": "SINUS_RHYTHM",
        "beatsPerMinuteAvg": "70",
        "samplingFrequencyHertz": 250,
        "millivoltsScalingFactor": 1000,
        "leadNumber": 1,
        "waveformSamples": [
          -12, -8, 4, 18, 30, 42, 50, 48, 32, 10
        ]
      }
    }
  ]
}

النطاقات والأذونات

لاستخدام ميزة بيانات المؤشرات الحيوية وصحة القلب، يجب أن يطلب تطبيقك نطاقات OAuth التالية:

  • القراءة: https://www.googleapis.com/auth/googlehealth.ecg.readonly
  • القراءة: https://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.readonly
  • الكتابة: https://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.writeonly
  • القراءة: https://www.googleapis.com/auth/googlehealth.irn.readonly

الإرشادات

يُرجى اتّباع الإرشادات التالية عند تصميم ميزات تتضمّن مؤشرات حيوية ومقاييس صحية:

  • التعامل مع تحويل وحدات القياس: يتم تقديم قيم درجة الحرارة بالدرجة المئوية. حوِّل إلى فهرنهايت في رمز الواجهة الأمامية استنادًا إلى الإعدادات المفضّلة المترجمة للمستخدم.
  • إدارة إشعارات Webhook: يمكنك الاشتراك في تنبيهات Webhook بشأن المؤشرات الحيوية لتفعيل تحليل الخلفية فور مزامنة المستخدم لقراءات جديدة (مثل معدل نبضات القلب أو مستوى السكر في الدم).
  • مراعاة حساسية البيانات: تأكَّد من أنّ منتجك يوضّح للمستخدمين بوضوح السياقات السريرية أو المتعلقة بالصحة والعافية التي يتم فيها قراءة المؤشرات الحيوية الفسيولوجية العالية التردد. وضِّح سبب ضرورة استخدام نطاقات مثل health_metrics_and_measurements أو ecg قبل عرض طلبات الحصول على إذن.