Các kiểu dữ liệu của Google Health API

Bảng sau đây chứa danh sách đầy đủ các loại dữ liệu, với một số cột giúp bạn hiểu rõ cách biểu thị từng loại trong Google Health API, cũng như phạm vi mà từng loại có sẵn.

Bảng: Các kiểu dữ liệu của Google Health API
Loại dữ liệu
  dataType
  filter tham số
Loại
bản ghi
Các thao tác
có thể thực hiện
Phạm vi Hỗ trợ
webhook
Hỗ trợ
số không thực
Năng lượng đốt cháy khi hoạt động
  active-energy-burned
  active_energy_burned
Khoảng thời gian list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Số phút hoạt động
  active-minutes
  active_minutes
Khoảng thời gian list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Số phút hoạt động cho vùng nhịp tim
  active-zone-minutes
  active_zone_minutes
Khoảng thời gian list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Cấp độ hoạt động
  activity-level
  activity_level
Khoảng thời gian list, reconcile .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Độ cao
  altitude
  altitude
Khoảng thời gian list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Đường huyết
  blood-glucose
  blood_glucose
Mẫu list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Lượng mỡ trong cơ thể
  body-fat
  body_fat
Mẫu list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Lượng calo tiêu thụ theo vùng nhịp tim
  calories-in-heart-rate-zone
  calories_in_heart_rate_zone
Khoảng thời gian rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Nhiệt độ cơ thể
  core-body-temperature
  core_body_temperature
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
Hằng ngày 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
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
Hằng ngày 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
Hằng ngày 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
Hằng ngày list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Dữ liệu nhiệt độ cơ thể hằng ngày trong lúc ngủ
  daily-sleep-temperature-derivations
  daily_sleep_temperature_derivations
Hằng ngày list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Lượng oxy tối đa hằng ngày
  daily-vo2-max
  daily_vo2_max
Hằng ngày list, reconcile .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Khoảng cách
  distance
  distance
Khoảng thời gian list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Điện tâm đồ (ECG)
  electrocardiogram
  electrocardiogram
Phiên danh sách .ecg.readonly
Tập thể dục
  exercise
  exercise
Phiên list, get, reconcile, create, update, batchDelete .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Tầng
  floors
  floors
Khoảng thời gian reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Thực phẩm
  food
  food
Thực phẩm list, get .nutrition.readonly
.nutrition.writeonly
Đơn vị đo lường thực phẩm
  food-measurement-unit
  food_measurement_unit
Thực phẩm list, get .nutrition.readonly
.nutrition.writeonly
Nhịp tim
  heart-rate
  heart_rate
Mẫu 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
Mẫu list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Chiều cao
  height
  height
Mẫu list, get, reconcile, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Nhật ký về lượng nước uống
  hydration-log
  hydration_log
Phiên list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly
Thông báo về tình trạng nhịp tim không đều
  irregular-rhythm-notification
  irregular_rhythm_notification
Phiên danh sách .irn.readonly
Kỳ kinh nguyệt
  menstrual-period
  menstrual_period
Khoảng thời gian create, update, batchDelete .reproductive_health.writeonly
Tâm trạng
  moods
  moods
Mẫu create, update, batchDelete .mindfulness.writeonly
Nhật ký dinh dưỡng
  nutrition-log
  nutrition_log
Mẫu list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly
Que thử rụng trứng
  ovulation-test
  ovulation_test
Mẫu create, update, batchDelete .reproductive_health.writeonly
Độ bão hoà oxy
  oxygen-saturation
  oxygen_saturation
Mẫu 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
Mẫu list, reconcile .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
Tốc độ tiêu thụ oxy tối đa khi chạy
  run-vo2-max
  run_vo2_max
Mẫu list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Giai đoạn ít vận động
  sedentary-period
  sedentary_period
Khoảng thời gian list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Ngủ
  sleep
  sleep
Phiên list, get, reconcile, create, update, batchDelete .sleep.readonly
.sleep.writeonly
Các bước
  steps
  steps
Khoảng thời gian list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Dữ liệu về số lượt bơi
  swim-lengths-data
  swim_lengths_data
Khoảng thời gian list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Triệu chứng
  symptoms
  symptoms
Mẫu create, update, batchDelete .logged_symptoms.writeonly
Thời gian ở vùng tần số tim
  time-in-heart-rate-zone
  time_in_heart_rate_zone
Khoảng thời gian list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Tổng lượng calo
  total-calories
  total_calories
Khoảng thời gian rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
VO2 Max
  vo2-max
  vo2_max
Mẫu list, reconcile .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Trọng số
  weight
  weight
Mẫu list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly

Điều kiện ràng buộc truy vấn

Khi truy vấn các điểm dữ liệu, dữ liệu tổng hợp hoặc dữ liệu tổng hợp hằng ngày từ API, hãy lưu ý đến các ràng buộc sau:

  • Yêu cầu về bộ lọc: Một số loại dữ liệu phái sinh chỉ đọc (chẳng hạn như total-calories) yêu cầu bộ lọc chỉ định thời gian bắt đầu khoảng thời gian (sử dụng thời gian thực hoặc thời gian dân sự).
  • Giới hạn phạm vi truy vấn: Phạm vi truy vấn tối đa cho calories-in-heart-rate-zone, heart-rate, active-minutestotal-calories là 14 ngày. Phạm vi truy vấn tối đa cho tất cả các loại dữ liệu khác là 90 ngày.

Phạm vi cung cấp dữ liệu

Dữ liệu của người dùng chỉ được cập nhật sau khi họ đồng bộ hoá thiết bị theo dõi hoạt động hoặc nhập dữ liệu mới theo cách thủ công vào ứng dụng di động hoặc ứng dụng web Fitbit. Thiết bị Fitbit và ứng dụng di động Fitbit có thể tự động đồng bộ hoá sau mỗi 15 phút khi ứng dụng Fitbit đang mở trên thiết bị di động và hai thiết bị này có kết nối dữ liệu đang hoạt động và nằm trong phạm vi Bluetooth. Nếu người dùng đang theo dõi hoạt động bằng MobileTrack, thì MobileTrack sẽ đồng bộ hoá mỗi giờ miễn là ứng dụng đang mở.

Truy vấn dữ liệu trong quá khứ

Một trong những lợi ích chính của Google Health API là khả năng theo dõi hiệu suất của người dùng và giám sát các chỉ số sức khoẻ của họ trong thời gian dài. Bạn có thể truy vấn dữ liệu của người dùng từ thời điểm dữ liệu được ghi lại; API không áp đặt bất kỳ giới hạn hoặc quy định hạn chế nào về lượng dữ liệu trong quá khứ mà ứng dụng của bạn có thể sử dụng.

Tuy nhiên, việc truy vấn dữ liệu cũ vẫn phải chịu sự điều chỉnh của giới hạn tốc độ tiêu chuẩn. Để giảm số lượng lệnh gọi API so với các giới hạn này, Google Health API hỗ trợ truy vấn dữ liệu trong một phạm vi ngày. Lưu ý các giới hạn về phân trang và yêu cầu sau:

  • Mỗi điểm cuối trả về kích thước trang tối đa là 10.000 điểm dữ liệu trên mỗi trang.
  • Phạm vi ngày truy vấn bị giới hạn trong khoảng từ 14 đến 90 ngày cho mỗi yêu cầu.

Tuỳ thuộc vào lượng dữ liệu cũ mà ứng dụng của bạn cần, việc truy xuất toàn bộ tập dữ liệu có thể yêu cầu nhiều yêu cầu tuần tự và mất thêm thời gian. Hãy lưu ý điều này khi thiết kế quy trình đồng bộ hoá dữ liệu của ứng dụng.

Để đảm bảo hiệu suất tối ưu và tránh lỗi API, hãy làm theo các nguyên tắc sau khi truy vấn dữ liệu cũ:

Đồng bộ hoá dữ liệu theo giai đoạn (tải nóng so với tải lạnh)

  • Tải "nóng" ban đầu: Chỉ tìm nạp và hiển thị dữ liệu của 7 đến 14 ngày gần đây nhất trong trình tự tải chính. Điều này đảm bảo người dùng thấy dữ liệu ngay lập tức mà không cần chờ các truy vấn chạy trong thời gian dài.
  • Tải "lạnh" trong nền: Uỷ quyền truy xuất dữ liệu cũ trong quá khứ cho một hàng đợi không đồng bộ, có mức độ ưu tiên thấp hơn hoặc quy trình trong nền sau khi giao diện người dùng chính được kết xuất.

Phân đoạn truy vấn dựa trên thời gian

  • Đừng yêu cầu khoảng thời gian nhiều năm hoặc nhiều tháng trong một lệnh gọi API. Chia các truy vấn lớn về dữ liệu trong quá khứ thành các khoảng thời gian nhỏ hơn, tuần tự (ví dụ: 1 tuần cho mỗi yêu cầu).
  • Xử lý hàng loạt hoặc theo trình tự các truy vấn phụ này một cách an toàn để tuân thủ giới hạn về mức độ đồng thời và duy trì các chỉ báo tiến trình ổn định trên giao diện người dùng.

Tận dụng các bản tổng hợp được tổng hợp trước

Cấu trúc lại trang tổng quan và biểu đồ xu hướng để sử dụng các điểm cuối tóm tắt được tổng hợp trước (chẳng hạn như DailyRollUpDataPoints). Điều này sẽ giảm đáng kể chi phí tính toán ở phần phụ trợ và thời gian truyền mạng cho máy khách.

Xử lý lỗi linh hoạt (thử lại thông minh)

  • Triển khai quy trình xử lý thời gian đợi luỹ thừa nghiêm ngặt khi gặp phải giới hạn về tốc độ (429 Too Many Requests) và thời gian chờ của cổng máy chủ (504 Gateway Timeout). Đừng bao giờ thử lại ngay lập tức các tải trọng lớn không thành công. Việc thử lại ngay lập tức sẽ làm tăng tình trạng tắc nghẽn ở phần phụ trợ và làm trầm trọng thêm tình trạng suy giảm hệ thống.
  • Nếu một truy vấn hết thời gian chờ nhiều lần, hãy tự động quay lại một khung thời gian nhỏ hơn (ví dụ: giảm một đoạn 1 tuần xuống còn 3 ngày).

Quyền truy cập của bên thứ ba

Các thiết bị Fitbit không thể giao tiếp trực tiếp với các ứng dụng hoặc dịch vụ bên thứ ba. Những thiết bị này được thiết kế để giao tiếp và đồng bộ hoá riêng với ứng dụng Fitbit.

Thiết bị tự động đồng bộ hoá dữ liệu trong suốt cả ngày, bất cứ khi nào ứng dụng Fitbit mở hoặc cứ 15 phút một lần nếu Bluetooth đang hoạt động và ứng dụng đang chạy ở chế độ nền. Sau khi quá trình đồng bộ hoá này hoàn tất, dữ liệu sẽ có sẵn cho các dịch vụ bên thứ ba thông qua Google Health API.

Tiêu chuẩn về khoảng cách

Khoảng cách tập thể dục, chẳng hạn như elevationGainMillimeters, được đo bằng milimet làm đơn vị tiêu chuẩn vì những lý do sau:

  1. Duy trì độ chính xác của dữ liệu: Lý do quan trọng nhất để sử dụng đơn vị milimet là để đảm bảo chúng tôi không mất đi độ chính xác nào trong dữ liệu mà chúng tôi đọc và cung cấp. Việc sử dụng một đơn vị đo lường chi tiết như milimet cho phép chúng tôi biểu thị các phép đo với độ chính xác cao.
  2. Tiêu chuẩn hoá: Milimet là đơn vị tiêu chuẩn được thiết kế trên các dịch vụ của chúng tôi. Tính nhất quán này giúp đảm bảo trải nghiệm đồng nhất cho các nhà phát triển tương tác với nhiều phần của API.
  3. Hỗ trợ hệ thống đo lường rộng rãi: Việc sử dụng một đơn vị cơ bản như milimet giúp nhà phát triển dễ dàng chuyển đổi sang bất kỳ đơn vị nào khác mà họ chọn, bất kể họ đang làm việc với hệ thống đo lường bằng mét, hệ thống đo lường của Anh hoặc các hệ thống đo lường khác.

Độ dài ngày thay đổi

API Sức khoẻ ưu tiên thời gian của người dùng để tính đến độ dài ngày thay đổi do Giờ tiết kiệm ánh sáng ban ngày hoặc do đi lại. Mỗi điểm dữ liệu được lưu trữ cùng với cả dấu thời gian UTC thực tế và độ lệch UTC đang hoạt động tại thời điểm xảy ra sự kiện. Điều này cho phép hệ thống:

  • Ánh xạ sự kiện với một thời điểm chính xác trong thực tế.
  • Điều chỉnh thời gian theo bối cảnh địa phương của người dùng để tổng hợp.

Giờ tiết kiệm ánh sáng ban ngày

Khi quy ước giờ mùa hè diễn ra, việc "chuyển về" sẽ dẫn đến một ngày dương lịch có 25 giờ và dữ liệu tổng hợp cho ngày đó sẽ chứa dữ liệu của 25 giờ. Việc "chuyển sang giờ mùa hè" dẫn đến một ngày dương lịch kéo dài 23 giờ, trong đó thời gian chuyển về Giờ chuẩn.

Du lịch

Việc di chuyển qua các múi giờ có thể gây ra những biến động đáng kể hơn nữa về thời lượng thực tế của một ngày dương lịch.

Sử dụng điểm cuối dailyRollUp để điều chỉnh chênh lệch múi giờ. Tính năng này tự động phân bổ dữ liệu cho ngày dương lịch mà dữ liệu được ghi lại theo giờ địa phương của người dùng, nhờ đó "kết hợp" ngày với nhau bất kể có sự thay đổi về múi giờ.