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ố
Các thao tác
có thể thực hiện
Phạm vi
Năng lượng đốt cháy khi hoạt động
active-energy-burned
active_energy_burned
Loại bản ghi: 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
Loại bản ghi: Khoảng thời gian

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

  • Fitbit Air
  • Fitbit Alta
  • Fitbit Alta HR
  • Fitbit Blaze
  • Fitbit Charge 2
  • Fitbit Charge 3
  • Fitbit Flex 2
  • Fitbit Inspire
  • Fitbit Inspire HR
  • Pixel Watch 4
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
Loại bản ghi: Khoảng thời gian

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

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Mức độ hoạt động
activity-level
activity_level
Loại bản ghi: Khoảng thời gian
list, reconcile .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Độ cao
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Đườ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
Lượng mỡ trong cơ thể
body-fat
body_fat
Loại bản ghi: Mẫu

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

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
Loại bản ghi: Khoảng thời gian
rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.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
Lượng oxy tối đa hằng ngày
daily-vo2-max
daily_vo2_max
Loại bản ghi: Hằng ngày

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

list, reconcile .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Khoảng cách
distance
distance
Loại bản ghi: Khoảng thời gian

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

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.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
Tập thể dục
exercise
exercise
Loại bản ghi: Phiên

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

list, get, reconcile, create, update, batchDelete .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Tầng
reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Đồ ăn
food
food
Loại bản ghi: 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
Loại bản ghi: Thực phẩm

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

list, get .nutrition.readonly
.nutrition.writeonly
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
Chiều cao
height
height
Loại bản ghi: 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
Loại bản ghi: 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
Loại bản ghi: Phiên
danh sách .irn.readonly
Kỳ kinh nguyệt
menstrual-period
menstrual_period
Loại bản ghi: Khoảng thời gian
create, update, batchDelete .reproductive_health.writeonly
Tâm trạng
moods
moods
Loại bản ghi: Mẫu
create, update, batchDelete .mindfulness.writeonly
Nhật ký dinh dưỡng
nutrition-log
nutrition_log
Loại bản ghi: Mẫu

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

list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly
Que thử rụng trứng
ovulation-test
ovulation_test
Loại bản ghi: Mẫu
create, update, batchDelete .reproductive_health.writeonly
Độ 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
Tốc độ tiêu thụ oxy tối đa khi chạy
run-vo2-max
run_vo2_max
Loại bản ghi: Mẫu

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

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Khoảng thời gian ít vận động
sedentary-period
sedentary_period
Loại bản ghi: Khoảng thời gian

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

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Ngủ
sleep
sleep
Loại bản ghi: Phiên

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

list, get, reconcile, create, update, batchDelete .sleep.readonly
.sleep.writeonly
Các bước
steps
steps
Loại bản ghi: Khoảng thời gian

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

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
Loại bản ghi: Khoảng thời gian

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

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Triệu chứng
symptoms
symptoms
Loại bản ghi: 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
Loại bản ghi: 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
Loại bản ghi: Khoảng thời gian

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

rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Tốc độ tiêu thụ oxy tối đa
vo2-max
vo2_max
Loại bản ghi: Mẫu

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

list, reconcile .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Trọng số
weight
weight
Loại bản ghi: Mẫu

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

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 một 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: Các điểm cuối tổng hợp thông tin tổng quan và tổng hợp hằng ngày sẽ thực thi giới hạn phạm vi truy vấn tối đa dựa trên kiểu dữ liệu:
    • Phạm vi truy vấn tối đa là 14 ngày đối với calories-in-heart-rate-zone, heart-rate, active-minutestotal-calories.
    • Phạm vi truy vấn tối đa là 90 ngày cho tất cả các loại dữ liệu khác.

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. Để quản lý độ ổn định của hệ thống và ngăn chặn tải trọng quá mức, Google Health API sử dụng tính năng phân trang tự động với kích thước trang dành riêng cho từng điểm cuối. Hãy lưu ý các ranh giới và hành vi sau:

  • Phân trang tự động: Nếu bạn truy vấn một khoảng dữ liệu dài, API sẽ chỉ trả về trang kết quả đầu tiên (tối đa là giới hạn kích thước trang) cho điểm cuối đó, cùng với nextPageToken. Bạn phải sử dụng nextPageToken để yêu cầu các trang tiếp theo.
  • Kích thước trang thay đổi: Giới hạn tối đa phụ thuộc vào điểm cuối và loại dữ liệu. Đối với hầu hết các loại dữ liệu, kích thước trang được giới hạn tối đa là 10.000. Tuy nhiên, đối với một số kiểu dữ liệu như exercisesleep, kích thước trang mặc định và tối đa được giới hạn ở mức 25. Ví dụ: nếu một ứng dụng yêu cầu tất cả dữ liệu giấc ngủ trong 10 năm qua, thì API vẫn chỉ trả về 25 phiên ngủ trên trang đầu tiên.
  • Các quy định hạn chế về phạm vi ngày tổng hợp: Đối với các điểm cuối tổng hợp và tổng kết dữ liệu (chẳng hạn như rollUpdailyRollUp), phạm vi ngày truy vấn sẽ bị hạn chế dựa trên loại dữ liệu:
    • Phạm vi tối đa là 14 ngày đối với calories-in-heart-rate-zone, heart-rate, active-minutestotal-calories.
    • Phạm vi tối đa là 90 ngày cho tất cả các loại dữ liệu tổng hợp khác.

Tuỳ thuộc vào lượng dữ liệu trước đây mà ứng dụng của bạn cần, việc truy xuất toàn bộ tập dữ liệu sẽ yêu cầu phân trang tuần tự qua các trang. 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 để tổng hợp

  • Vì các điểm cuối tổng hợp và tổng hợp hằng ngày áp dụng giới hạn tối đa về phạm vi ngày (14 hoặc 90 ngày, tuỳ thuộc vào loại dữ liệu), nên bạn phải chia các truy vấn tổng hợp lớn trong quá khứ thành các khoảng thời gian nhỏ hơn, tuần tự trong các giới hạn này.
  • 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.

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 độ 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. Chuẩn hoá: Milimet là đơn vị chuẩn hoá đượ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 trên diện rộng: 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 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ờ.