Phát triển các trải nghiệm về chỉ số quan trọng và chỉ số sức khoẻ bằng Google Health API

Google Health API theo dõi các chỉ số sức khỏe và chỉ số sức khoẻ sinh lý của người dùng, chẳng hạn như tần số tim, độ bão hòa oxy, đường huyết, nhiệt độ cơ thể và các chỉ số nhiệt độ cơ thể hằng ngày khi ngủ.

Tìm hiểu cách đọc và yêu cầu người dùng cấp quyền truy cập vào dữ liệu quan trọng trong ứng dụng của bạn để mang lại trải nghiệm tốt nhất cho người dùng.

Các loại dữ liệu được hỗ trợ

API này hỗ trợ các loại dữ liệu sau đây để theo dõi các chỉ số sức khoẻ và sức khoẻ tổng thể:

Bảng: Các loại dữ liệu về chỉ số quan trọng của Google Health API
Loại dữ liệu
  dataType
  filter tham số
Các thao tác
có thể thực hiện
Phạm vi
Đường huyết
blood-glucose
blood_glucose
Loại bản ghi: Mẫu
list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Nhiệt độ vùng thân
core-body-temperature
core_body_temperature
Loại bản ghi: Mẫu
list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Sự thay đổi tần số tim hằng ngày
daily-heart-rate-variability
daily_heart_rate_variability
Loại bản ghi: Hằng ngày

Thiết bị tương thích

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Vùng tần số tim hằng ngày
daily-heart-rate-zones
daily_heart_rate_zones
Loại bản ghi: Hằng ngày
list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Độ bão hoà oxy hằng ngày
daily-oxygen-saturation
daily_oxygen_saturation
Loại bản ghi: Hằng ngày

Thiết bị tương thích

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Nhịp thở hằng ngày
daily-respiratory-rate
daily_respiratory_rate
Loại bản ghi: Hằng ngày

Thiết bị tương thích

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Tần số tim lúc nghỉ ngơi hằng ngày
daily-resting-heart-rate
daily_resting_heart_rate
Loại bản ghi: Hằng ngày

Thiết bị tương thích

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Thông tin về nhiệt độ cơ thể trong lúc ngủ mỗi ngày
daily-sleep-temperature-derivations
daily_sleep_temperature_derivations
Loại bản ghi: Hằng ngày

Thiết bị tương thích

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Điện tâm đồ (ECG)
electrocardiogram
electrocardiogram
Loại bản ghi: Phiên

Thiết bị tương thích

danh sách .ecg.readonly
Nhịp tim
heart-rate
heart_rate
Loại bản ghi: Mẫu

Thiết bị tương thích

list, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Sự thay đổi tần số tim
heart-rate-variability
heart_rate_variability
Loại bản ghi: Mẫu

Thiết bị tương thích

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Thông báo về tình trạng nhịp tim không đều
irregular-rhythm-notification
irregular_rhythm_notification
Loại bản ghi: Phiên
danh sách .irn.readonly
Độ bão hoà oxy
oxygen-saturation
oxygen_saturation
Loại bản ghi: Mẫu

Thiết bị tương thích

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Tóm tắt nhịp thở khi ngủ
respiratory-rate-sleep-summary
respiratory_rate_sleep_summary
Loại bản ghi: Mẫu

Thiết bị tương thích

list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly

Yêu cầu chỉ đọc

Các loại dữ liệu về chỉ số sức khỏe được điền sẵn bằng tính năng đồng bộ hoá thiết bị hoặc các mục nhập nhật ký thủ công trong ứng dụng di động hoặc ứng dụng web Fitbit và là chỉ đọc thông qua API REST (không thể ghi hoặc sửa đổi trực tiếp thông qua các điểm cuối Google Health API).

Các phần sau đây cung cấp thông tin chi tiết về kỹ thuật và định dạng biểu thị REST cho dữ liệu chỉ số sức khỏe.

Tần số tim và sức khoẻ tim mạch

API này cung cấp các thông tin đo lường chi tiết trong ngày và thông tin tổng quan hằng ngày cho các chỉ số về tần số tim:

  • Tần số tim (heart-rate): Số đo tần số tim tại một thời điểm cụ thể, bao gồm số lượng beatsPerMinute, cùng với motionContext (chẳng hạn như SEDENTARY hoặc ACTIVE) và sensorLocation (chẳng hạn như WRIST hoặc CHEST) của người dùng.
  • Tần số tim lúc nghỉ ngơi hằng ngày (daily-resting-heart-rate): Giá trị tần số tim lúc nghỉ ngơi cơ bản hằng ngày.
  • Sự thay đổi tần số tim (heart-rate-variabilitydaily-heart-rate-variability): Ghi lại căn bậc hai trung bình của các hiệu số liên tiếp (rmssd) tính bằng mili giây để biểu thị HRV.

Ví dụ về biểu thị REST

Để truy vấn các phép đo tần số tim, hãy gửi yêu cầu GET đến điểm cuối list.

Ví dụ sau đây cho thấy một điểm dữ liệu heart-rate duy nhất trong danh sách được trả về:

Yêu cầu

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

Phản hồi

{
  "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"
        }
      }
    }
  ]
}

Đường huyết

Loại dữ liệu blood-glucose biểu thị mức đường huyết của người dùng. Điểm đường huyết cho biết nồng độ tính bằng miligam trên mỗi decilit (mg/dL), bữa ăn hoặc bối cảnh thời gian và thông tin mẫu.

Ví dụ về biểu thị REST

Để truy vấn các chỉ số đo đường huyết, hãy gửi yêu cầu GET đến điểm cuối list. Ví dụ sau đây cho thấy một điểm dữ liệu blood-glucose duy nhất trong danh sách được trả về:

Yêu cầu

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

Phản hồi

{
  "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"
      }
    }
  ]
}

Độ bão hoà oxy (SpO2)

API này theo dõi nồng độ oxy bằng cách sử dụng oxygen-saturation (giá trị mẫu trong ngày) và daily-oxygen-saturation (số liệu thống kê tóm tắt hằng ngày). Nồng độ phần trăm được biểu thị bằng một số từ 0 đến 100.

Ví dụ về biểu thị REST

Để truy vấn các phép đo độ bão hòa oxy, hãy gửi yêu cầu GET đến điểm cuối list. Ví dụ sau đây cho thấy một điểm dữ liệu oxygen-saturation duy nhất trong danh sách được trả về:

Yêu cầu

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

Phản hồi

{
  "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
      }
    }
  ]
}

Nhiệt độ

Tính năng theo dõi nhiệt độ bao gồm các chỉ số về nhiệt độ cơ thể và xu hướng nhiệt độ trên da khi ngủ:

  • Thân nhiệt (core-body-temperature): Ghi lại nhiệt độ của các cơ quan nội tạng theo độ C, cùng với vị trí đo cụ thể (chẳng hạn như ARMPIT, EAR hoặc FOREHEAD).
  • Thông tin về nhiệt độ khi ngủ (daily-sleep-temperature-derivations): Sự thay đổi nhiệt độ trên da với tần suất cao được ghi lại qua đêm.

Ví dụ về biểu thị REST

Để truy vấn các phép đo nhiệt độ cơ thể, hãy gửi yêu cầu GET đến điểm cuối list. Ví dụ sau đây cho thấy một điểm dữ liệu core-body-temperature duy nhất trong danh sách được trả về:

Yêu cầu

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

Phản hồi

{
  "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"
      }
    }
  ]
}

Điện tâm đồ (ECG) và thông báo

Đối với các thiết bị có cảm biến cấp y tế, API này sẽ hiển thị các loại dữ liệu nâng cao về sức khoẻ tim:

  • Điện tâm đồ (electrocardiogram): Kết quả của một phiên đo điện tâm đồ bằng một điện cực, bao gồm một bản phân loại (SINUS_RHYTHM, ATRIAL_FIBRILLATION, INCONCLUSIVE), tần số tim trung bình, tần số lấy mẫu và các mẫu điện áp dạng sóng thô.
  • Thông báo về tình trạng nhịp tim không đều (irregular-rhythm-notification): Các sự kiện cảnh báo theo bối cảnh cho biết dấu hiệu rung tâm nhĩ tiềm ẩn được phát hiện trong quá trình theo dõi thụ động.

Ví dụ về biểu thị REST

Để truy vấn dữ liệu phiên điện tâm đồ, hãy gửi yêu cầu GET đến điểm cuối list. Ví dụ sau đây cho thấy một điểm dữ liệu electrocardiogram duy nhất trong danh sách được trả về:

Yêu cầu

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

Phản hồi

{
  "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
        ]
      }
    }
  ]
}

Phạm vi và uỷ quyền

Để sử dụng tính năng dữ liệu về chỉ số quan trọng và sức khoẻ tim mạch, ứng dụng của bạn phải yêu cầu các phạm vi OAuth sau:

  • Đọc: https://www.googleapis.com/auth/googlehealth.ecg.readonly
  • Đọc: https://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.readonly
  • Write (Viết): https://www.googleapis.com/auth/googlehealth.health_metrics_and_measurements.writeonly
  • Đọc: https://www.googleapis.com/auth/googlehealth.irn.readonly

Nguyên tắc

Hãy áp dụng những nguyên tắc sau đây khi thiết kế các tính năng có chỉ số quan trọng và chỉ số sức khoẻ:

  • Xử lý việc chuyển đổi đơn vị: Giá trị nhiệt độ được cung cấp bằng độ C. Chuyển đổi sang độ Fahrenheit trong mã giao diện người dùng dựa trên các lựa chọn ưu tiên đã bản địa hoá của người dùng.
  • Quản lý thông báo webhook: Đăng ký nhận cảnh báo webhook về các chỉ số sức khỏe để kích hoạt quy trình phân tích phụ trợ ngay sau khi người dùng đồng bộ hoá các chỉ số mới (chẳng hạn như tần số tim hoặc đường huyết).
  • Tôn trọng tính nhạy cảm của dữ liệu: Đảm bảo rằng sản phẩm của bạn giải thích rõ ràng cho người dùng về bối cảnh lâm sàng hoặc sức khoẻ để đọc các chỉ số sức khỏe sinh lý tần số cao. Giải thích lý do cần có các phạm vi như health_metrics_and_measurements hoặc ecg trước khi gọi lời nhắc uỷ quyền.