با استفاده از Google Health API، تجربه‌های خواب خود را توسعه دهید

رابط برنامه‌نویسی کاربردی گوگل هلث (Google Health API) انواع داده‌هایی را ارائه می‌دهد که الگوهای خواب کاربر، از جمله مدت زمان، کیفیت و معیارهای فیزیولوژیکی در طول استراحت را ردیابی می‌کنند. این معیارها به برنامه‌ها کمک می‌کنند تا بینش‌هایی در مورد بهبودی، بهداشت خواب و روندهای سلامت در درازمدت ارائه دهند.

معیارهای فیزیولوژیکی مانند تغییرپذیری ضربان قلب (HRV)، اشباع اکسیژن (SpO2) و میزان تنفس به طور خاص در طول خواب ثبت می‌شوند زیرا بدن در حالت پایدار و استراحت قرار دارد. این به API اجازه می‌دهد تا بدون دخالت عوامل استرس‌زای روزانه، فعالیت بدنی یا شرایط محیطی متغیر، یک پایه از سلامت خودکار و تنفسی کاربر را ثبت کند.

تفاوت‌های بین این نوع داده‌ها را درک کنید تا مشخص کنید کدام معیارها برای برنامه شما مناسب هستند.

انواع داده پشتیبانی شده

این API از انواع داده‌های زیر برای اندازه‌گیری خواب پشتیبانی می‌کند:

جدول: انواع داده‌های خواب در API سلامت گوگل
نوع داده موجود است
عملیات
دامنه
تغییرپذیری روزانه ضربان قلب
نوع داده: daily-heart-rate-variability
پارامتر فیلتر: daily_heart_rate_variability
نوع ثبت: روزانه

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

فهرست کردن، تطبیق دادن .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-sleep-temperature-derivations
پارامتر فیلتر: daily_sleep_temperature_derivations
نوع ثبت: روزانه

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

فهرست کردن، تطبیق دادن .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
اشباع اکسیژن
نوع داده: 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
خواب
نوع داده: sleep
پارامتر فیلتر: sleep
نوع رکورد: جلسه

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

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

جلسات خواب و بیداری‌های کوتاه

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

  • جلسه خواب ( Sleep ) : یک رویداد خواب گسسته (فواصل مراحل LIGHT ، DEEP ، REM ، AWAKE ) را نشان می‌دهد که جدول زمانی پیوسته استراحت اولیه را تقسیم می‌کند.
  • بیداری‌های کوتاه ( shortAwakenings ) : انتقال‌های کوتاه مدت از خواب یا بیدار شدن‌هایی که در طول استراحت رخ می‌دهند. برخلاف فواصل استاندارد مراحل AWAKE (که پیشرفت مراحل خواب پیوسته و غیر همپوشانی را تقسیم می‌کنند)، بیداری‌های کوتاه بخش‌های مجزایی هستند که می‌توانند با مراحل خواب اطراف همپوشانی داشته باشند. آن‌ها بدون ایجاد اختلال در ساختار مراحل اولیه خواب، امکان مشاهده دقیق بی‌قراری و بیداری‌های کوچک را فراهم می‌کنند.

مثال

{
  "name": "sleeps/12345",
  "startTime": "2026-04-20T22:30:00Z",
  "endTime": "2026-04-21T06:30:00Z",
  "sleepType": "STAGES",
  "sleepStages": [
    {
      "startTime": "2026-04-20T22:30:00Z",
      "endTime": "2026-04-20T23:45:00Z",
      "type": "LIGHT"
    },
    {
      "startTime": "2026-04-20T23:45:00Z",
      "endTime": "2026-04-21T01:15:00Z",
      "type": "DEEP"
    }
  ],
  "shortAwakenings": [
    {
      "startTime": "2026-04-20T23:10:00Z",
      "endTime": "2026-04-20T23:11:30Z",
      "type": "AWAKE"
    }
  ]
}

ایجاد یک جلسه خواب

برای ایجاد یک ورودی جلسه خواب، یک درخواست POST به نقطه پایانی نقاط داده sleep ارسال کنید. پاسخ شامل فیلد name حاوی data-point-id است که می‌تواند در یک درخواست به‌روزرسانی (وصله) یا حذف استفاده شود.

درخواست

POST https://health.googleapis.com/v4/users/me/dataTypes/sleep/dataPoints
Authorization: Bearer access-token
Content-Type: application/json

{
  "sleep": {
    "interval": {
      "startTime": "2026-06-07T22:00:00Z",
      "startUtcOffset": "-14400s",
      "endTime": "2026-06-08T06:00:00Z",
      "endUtcOffset": "-14400s"
    },
    "type": "STAGES",
    "stages": [
      {
        "startTime": "2026-06-07T22:00:00Z",
        "startUtcOffset": "-14400s",
        "endTime": "2026-06-07T22:30:00Z",
        "endUtcOffset": "-14400s",
        "type": "LIGHT"
      },
      {
        "startTime": "2026-06-07T22:30:00Z",
        "startUtcOffset": "-14400s",
        "endTime": "2026-06-07T23:45:00Z",
        "endUtcOffset": "-14400s",
        "type": "DEEP"
      },
      {
        "startTime": "2026-06-07T23:45:00Z",
        "startUtcOffset": "-14400s",
        "endTime": "2026-06-08T02:15:00Z",
        "endUtcOffset": "-14400s",
        "type": "LIGHT"
      },
      {
        "startTime": "2026-06-08T02:15:00Z",
        "startUtcOffset": "-14400s",
        "endTime": "2026-06-08T02:45:00Z",
        "endUtcOffset": "-14400s",
        "type": "REM"
      },
      {
        "startTime": "2026-06-08T02:45:00Z",
        "startUtcOffset": "-14400s",
        "endTime": "2026-06-08T05:15:00Z",
        "endUtcOffset": "-14400s",
        "type": "LIGHT"
      },
      {
        "startTime": "2026-06-08T05:15:00Z",
        "startUtcOffset": "-14400s",
        "endTime": "2026-06-08T06:00:00Z",
        "endUtcOffset": "-14400s",
        "type": "REM"
      }
    ]
  }
}

پاسخ

{
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.devicesandservices.health.v4.DataPoint",
    "name": "users/user-id/dataTypes/sleep/dataPoints/data-point-id",
    "sleep": {
      "interval": {
        "startTime": "2026-06-07T22:00:00Z",
        "startUtcOffset": "-14400s",
        "endTime": "2026-06-08T06:00:00Z",
        "endUtcOffset": "-14400s"
      },
      "type": "STAGES",
      "stages": [
        {
          "startTime": "2026-06-07T22:00:00Z",
          "startUtcOffset": "-14400s",
          "endTime": "2026-06-07T22:30:00Z",
          "endUtcOffset": "-14400s",
          "type": "LIGHT"
        },
        {
          "startTime": "2026-06-07T22:30:00Z",
          "startUtcOffset": "-14400s",
          "endTime": "2026-06-07T23:45:00Z",
          "endUtcOffset": "-14400s",
          "type": "DEEP"
        },
        {
          "startTime": "2026-06-07T23:45:00Z",
          "startUtcOffset": "-14400s",
          "endTime": "2026-06-08T02:15:00Z",
          "endUtcOffset": "-14400s",
          "type": "LIGHT"
        },
        {
          "startTime": "2026-06-08T02:15:00Z",
          "startUtcOffset": "-14400s",
          "endTime": "2026-06-08T02:45:00Z",
          "endUtcOffset": "-14400s",
          "type": "REM"
        },
        {
          "startTime": "2026-06-08T02:45:00Z",
          "startUtcOffset": "-14400s",
          "endTime": "2026-06-08T05:15:00Z",
          "endUtcOffset": "-14400s",
          "type": "LIGHT"
        },
        {
          "startTime": "2026-06-08T05:15:00Z",
          "startUtcOffset": "-14400s",
          "endTime": "2026-06-08T06:00:00Z",
          "endUtcOffset": "-14400s",
          "type": "REM"
        }
      ]
    }
  }
}

مشتقات دمای خواب روزانه

مشتقات دمای خواب روزانه، تغییرات دمای پوست کاربر را در طول خواب در مقایسه با دمای پایه اندازه‌گیری می‌کنند. این داده‌ها معمولاً روزی یک بار پس از یک جلسه خواب طولانی گزارش می‌شوند.

میزان تنفس

نرخ تنفس، تعداد نفس‌های کاربر در دقیقه را اندازه‌گیری می‌کند. در طول خواب، این یک معیار کلیدی برای نظارت بر کیفیت خواب و اختلالات احتمالی است. این API از نرخ تنفس نمونه ( respiratory-rate )، خلاصه‌های روزانه ( daily-respiratory-rate ) و خلاصه‌های خواب در سطح جلسه ( respiratory-rate-sleep-summary ) پشتیبانی می‌کند.

تغییرپذیری ضربان قلب (HRV)

HRV تغییر زمان بین هر ضربان قلب را اندازه‌گیری می‌کند. این یک شاخص کلیدی از وضعیت سیستم عصبی خودکار است؛ HRV بالا در طول خواب عموماً نشان‌دهنده بهبودی و آمادگی بهتر است، در حالی که HRV پایین می‌تواند نشان‌دهنده استرس یا تمرین بیش از حد باشد. این API از HRV نمونه ( heart-rate-variability ) و خلاصه‌های روزانه ( daily-heart-rate-variability ) پشتیبانی می‌کند.

اشباع اکسیژن (SpO2)

SpO2 نشان دهنده درصد هموگلوبین اشباع شده با اکسیژن نسبت به کل هموگلوبین خون است. نظارت بر SpO2 در طول خواب برای تشخیص اختلالات تنفسی احتمالی و اطمینان از حفظ سطح اکسیژن کافی کاربر در طول شب بسیار مهم است. API از SpO2 نمونه ( oxygen-saturation ) و خلاصه‌های روزانه ( daily-oxygen-saturation ) پشتیبانی می‌کند.

دیدگاه جامع در مورد سلامت خواب و بهبودی

در حالی که هر معیار بینش‌های خاصی را ارائه می‌دهد، عمیقاً به هم مرتبط هستند و در کنار هم، یک دیدگاه جامع از بهبودی کاربر ارائه می‌دهند. مراحل خواب (سبک، عمیق، REM) پایه و اساس ساختاری استراحت را فراهم می‌کنند، در حالی که نشانگرهای فیزیولوژیکی مانند HRV و SpO2 نشان می‌دهند که بدن چگونه به آن استراحت از نظر فیزیکی پاسخ می‌دهد. به عنوان مثال، یک جلسه خواب با کیفیت بالا با خواب عمیق بهینه اغلب با HRV بالاتر مرتبط است که نشان‌دهنده بهبودی مؤثر سیستم عصبی خودکار است.

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

دستورالعمل‌ها

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

  • جزئیات جلسه : برای نمایش مراحل خواب کاربر (سبک، عمیق، REM، بیدار) و بیداری‌های کوتاه، نوع داده sleep را جستجو کنید.
  • پایش فیزیولوژیکی : برای پایش پیشرفته سلامت، داده‌های جلسه خواب را با معیارهای فیزیولوژیکی و بهبودی مانند respiratory-rate-sleep-summary ، daily-sleep-temperature-derivations ، daily-heart-rate-variability و daily-oxygen-saturation ترکیب کنید.
  • تطبیق : از عملیات reconcile استفاده کنید تا اطمینان حاصل شود که گزارش‌های خواب همپوشانی از دستگاه‌های مختلف (به عنوان مثال، یک حسگر پوشیدنی و یک تشک) در یک رکورد خواب واحد "اصلی" ادغام می‌شوند.

محاسبه کل زمان خواب عمیق

برای محاسبه کل زمانی که کاربر در یک شب خاص در مرحله خواب عمیق ترمیمی گذرانده است:

  1. نوع داده sleep را برای محدوده زمانی مشخص شده پرس و جو کنید.
  2. در لیست مراحل (stages) جستجو کنید و فواصلی را که در آنها stageType DEEP است، شناسایی کنید.
  3. مدت زمان (زمان پایان - زمان شروع) را برای هر بازه خواب عمیق محاسبه کرده و آنها را با هم جمع کنید.

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