ประเภทข้อมูล Google Health API

ตารางต่อไปนี้มีรายการประเภทข้อมูลทั้งหมด โดยมีหลายคอลัมน์ ที่จะช่วยให้คุณเข้าใจการแสดงข้อมูลแต่ละประเภทใน Google Health API รวมถึงขอบเขตที่ข้อมูลแต่ละประเภทพร้อมใช้งาน

ตาราง: ประเภทข้อมูลของ Google Health API
ประเภทข้อมูล
  dataType พารามิเตอร์
  filter
ประเภท
ระเบียน
การดำเนินการ
ที่ใช้ได้
ขอบเขต การสนับสนุน
เว็บฮุค
การสนับสนุน
สำหรับค่าศูนย์ที่แท้จริง
แคลอรี่ที่เผาผลาญขณะทำกิจกรรม
  active-energy-burned
  active_energy_burned
ช่วงเวลา list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
นาทีที่มีการใช้งาน
  active-minutes
  active_minutes
ช่วงเวลา list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
นาทีในโซนแอ็กทีฟ
  active-zone-minutes
  active_zone_minutes
ช่วงเวลา list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ระดับกิจกรรม
  activity-level
  activity_level
ช่วงเวลา รายการ, ปรับยอด .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ระดับความสูง
  altitude
  altitude
ช่วงเวลา list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
น้ำตาลกลูโคสในเลือด
  blood-glucose
  blood_glucose
ตัวอย่าง list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
ไขมันในร่างกาย
  body-fat
  body_fat
ตัวอย่าง list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
แคลอรี่ในโซนอัตราการเต้นของหัวใจ
  calories-in-heart-rate-zone
  calories_in_heart_rate_zone
ช่วงเวลา rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.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
VO2 Max รายวัน
  daily-vo2-max
  daily_vo2_max
รายวัน รายการ, ปรับยอด .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ระยะทาง
  distance
  distance
ช่วงเวลา list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
คลื่นไฟฟ้าหัวใจ (ECG)
  electrocardiogram
  electrocardiogram
เซสชัน list .ecg.readonly
การออกกำลังกาย
  exercise
  exercise
เซสชัน list, get, reconcile, create, update, batchDelete .activity_and_fitness.readonly
.activity_and_fitness.writeonly
พื้น
  floors
  floors
ช่วงเวลา reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
อาหาร
  food
  food
อาหาร list, get .nutrition.readonly
.nutrition.writeonly
หน่วยวัดอาหาร
  food-measurement-unit
  food_measurement_unit
อาหาร list, get .nutrition.readonly
.nutrition.writeonly
อัตราการเต้นของหัวใจ
  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
ส่วนสูง
  height
  height
ตัวอย่าง list, get, reconcile, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
บันทึกการดื่มน้ำ
  hydration-log
  hydration_log
เซสชัน list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly
การแจ้งเตือนเมื่อจังหวะการเต้นของหัวใจผิดปกติ
  irregular-rhythm-notification
  irregular_rhythm_notification
เซสชัน list .irn.readonly
ระยะประจำเดือน
  menstrual-period
  menstrual_period
ช่วงเวลา create, update, batchDelete .reproductive_health.writeonly
อารมณ์
  moods
  moods
ตัวอย่าง create, update, batchDelete .mindfulness.writeonly
บันทึกโภชนาการ
  nutrition-log
  nutrition_log
ตัวอย่าง list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly
อุปกรณ์ทดสอบการตกไข่
  ovulation-test
  ovulation_test
ตัวอย่าง create, update, batchDelete .reproductive_health.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
วิ่ง VO2 Max
  run-vo2-max
  run_vo2_max
ตัวอย่าง list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ระยะเวลาอยู่กับที่ไม่เคลื่อนไหว
  sedentary-period
  sedentary_period
ช่วงเวลา list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
การนอนหลับ
  sleep
  sleep
เซสชัน list, get, reconcile, create, update, batchDelete .sleep.readonly
.sleep.writeonly
ขั้นตอน
  steps
  steps
ช่วงเวลา list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ข้อมูลความยาวของสระว่ายน้ำ
  swim-lengths-data
  swim_lengths_data
ช่วงเวลา list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
อาการ
  symptoms
  symptoms
ตัวอย่าง create, update, batchDelete .logged_symptoms.writeonly
เวลาในโซนอัตราการเต้นของหัวใจ
  time-in-heart-rate-zone
  time_in_heart_rate_zone
ช่วงเวลา list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
แคลอรี่ทั้งหมด
  total-calories
  total_calories
ช่วงเวลา rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
VO2 Max
  vo2-max
  vo2_max
ตัวอย่าง รายการ, ปรับยอด .activity_and_fitness.readonly
.activity_and_fitness.writeonly
น้ำหนัก
  weight
  weight
ตัวอย่าง list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly

ข้อจำกัดของคำค้นหา

เมื่อค้นหาจุดข้อมูล การสรุป หรือการสรุปรายวันจาก API โปรดคำนึงถึงข้อจำกัดต่อไปนี้

  • ข้อกำหนดของตัวกรอง: ข้อมูลประเภทที่ได้แบบอ่านอย่างเดียวบางประเภท เช่น total-calories ต้องมีตัวกรองที่ระบุเวลาเริ่มต้นของช่วง (โดยใช้เวลาจริงหรือเวลาพลเรือน)
  • ขีดจำกัดช่วงการค้นหา: ช่วงการค้นหาสูงสุดสำหรับ calories-in-heart-rate-zone, heart-rate, active-minutes และ total-calories คือ 14 วัน ช่วงการค้นหาสูงสุดสำหรับข้อมูลประเภทอื่นๆ ทั้งหมดคือ 90 วัน

ความพร้อมใช้งานของข้อมูล

การอัปเดตข้อมูลของผู้ใช้จะพร้อมใช้งานหลังจากที่ผู้ใช้ซิงค์เครื่องมือติดตามกิจกรรมหรือป้อนข้อมูลใหม่ลงในแอป Fitbit บนมือถือหรือเว็บแอปด้วยตนเองเท่านั้น อุปกรณ์ Fitbit และแอป Fitbit บนมือถือจะซิงค์โดยอัตโนมัติทุกๆ 15 นาทีเมื่อแอป Fitbit เปิดอยู่บนอุปกรณ์เคลื่อนที่และทั้ง 2 อย่างมีการเชื่อมต่อข้อมูลที่ใช้งานอยู่และอยู่ในระยะ Bluetooth หากผู้ใช้ติดตามกิจกรรมโดยใช้ MobileTrack ระบบจะซิงค์ MobileTrack ทุกชั่วโมงตราบใดที่แอปเปิดอยู่

การค้นหาข้อมูลย้อนหลัง

ข้อดีหลักอย่างหนึ่งของ Google Health API คือความสามารถในการติดตามประสิทธิภาพของผู้ใช้และตรวจสอบค่าสุขภาพที่สำคัญเป็นระยะเวลานาน คุณสามารถค้นหาข้อมูลของผู้ใช้ได้ย้อนหลังเท่าที่ระบบบันทึกไว้ โดย API จะไม่จำกัดจำนวนข้อมูลย้อนหลังที่แอปพลิเคชันของคุณใช้ได้

อย่างไรก็ตาม การค้นหาข้อมูลย้อนหลังยังคงอยู่ภายใต้ขีดจํากัดอัตรามาตรฐาน Google Health API รองรับการค้นหาข้อมูลในช่วงวันที่เพื่อลดจำนวนการเรียก API ที่เกี่ยวข้องกับขีดจำกัดเหล่านี้ โปรดทราบการแบ่งหน้าและขอบเขตคำขอต่อไปนี้

  • แต่ละปลายทางจะแสดงผลขนาดหน้าสูงสุดที่ 10,000 จุดข้อมูลต่อหน้า
  • ช่วงวันที่ของคําค้นหาถูกจํากัดไว้ระหว่าง 14 ถึง 90 วันต่อคําขอ

การดึงข้อมูลทั้งชุดอาจต้องใช้คำขอแบบต่อเนื่องหลายรายการและใช้เวลาเพิ่มเติม ทั้งนี้ขึ้นอยู่กับปริมาณข้อมูลย้อนหลังที่แอปพลิเคชันของคุณต้องการ โปรดคำนึงถึงเรื่องนี้เมื่อออกแบบกระบวนการซิงโครไนซ์ข้อมูลของแอปพลิเคชัน

ทำตามหลักเกณฑ์เหล่านี้เมื่อค้นหาข้อมูลย้อนหลังเพื่อให้ได้ประสิทธิภาพสูงสุดและหลีกเลี่ยงข้อผิดพลาดของ API

การซิงค์ข้อมูลแบบเป็นระยะ (โหลดแบบร้อนเทียบกับแบบเย็น)

  • การโหลด "ด่วน" ครั้งแรก: ดึงและแสดงเฉพาะข้อมูลในช่วง 7-14 วันล่าสุด ในลําดับการโหลดหลัก ซึ่งจะช่วยให้ผู้ใช้เห็นข้อมูลได้ทันทีโดยไม่ต้องรอการค้นหาที่ใช้เวลานาน
  • การโหลด "เย็น" ในเบื้องหลัง: มอบหมายการดึงข้อมูลย้อนหลังที่เก่ากว่า ไปยังคิวแบบไม่พร้อมกันที่มีลำดับความสำคัญต่ำกว่าหรือกระบวนการในเบื้องหลัง หลังจากที่แสดงผล UI หลักแล้ว

การแบ่งคำค้นหาตามเวลา

  • อย่าขอช่วงเวลาหลายปีหรือหลายเดือนในการเรียก API ครั้งเดียว แบ่งการค้นหาข้อมูลย้อนหลังขนาดใหญ่ออกเป็นช่วงเวลาที่เล็กลงและต่อเนื่องกัน (เช่น 1 สัปดาห์ต่อคำขอ)
  • จัดกลุ่มหรือจัดลำดับคำค้นหาย่อยเหล่านี้อย่างปลอดภัยเพื่อปฏิบัติตามขีดจำกัดการทำงานพร้อมกัน และรักษาตัวบ่งชี้ความคืบหน้าของ UI ให้คงที่

ใช้การสรุปข้อมูลที่รวมไว้ล่วงหน้า

ปรับโครงสร้างแดชบอร์ดภาพรวมและแผนภูมิแนวโน้มเพื่อใช้ปลายทางสรุปที่รวบรวมไว้ล่วงหน้า (เช่น DailyRollUpDataPoints) ซึ่งจะช่วยลดค่าใช้จ่ายในการคำนวณที่แบ็กเอนด์และเวลาในการโอนข้อมูลผ่านเครือข่ายไปยังไคลเอ็นต์ได้อย่างมาก

การจัดการข้อผิดพลาดที่ยืดหยุ่น (การลองใหม่ที่ชาญฉลาด)

  • ใช้การจัดการ Exponential Backoff อย่างเข้มงวดเมื่อพบขีดจำกัดอัตรา (429 Too Many Requests) และระยะหมดเวลาของเกตเวย์เซิร์ฟเวอร์ (504 Gateway Timeout) อย่าลองส่งเพย์โหลดขนาดใหญ่ที่ล้มเหลวซ้ำทันที การลองใหม่ทันทีจะเพิ่มความหนาแน่นของแบ็กเอนด์และทำให้ระบบเสื่อมประสิทธิภาพมากขึ้น
  • หากการค้นหาหมดเวลาซ้ำๆ ให้เปลี่ยนไปใช้กรอบเวลาที่เล็กลงโดยอัตโนมัติ (เช่น ลดช่วง 1 สัปดาห์เหลือ 3 วัน)

สิทธิ์เข้าถึงของบุคคลที่สาม

อุปกรณ์ Fitbit สื่อสารกับแอปพลิเคชันหรือบริการของบุคคลที่สามโดยตรงไม่ได้ อุปกรณ์เหล่านี้ออกแบบมาเพื่อสื่อสารและซิงค์กับแอป Fitbit บนมือถือโดยเฉพาะ

อุปกรณ์จะซิงค์ข้อมูลโดยอัตโนมัติตลอดทั้งวันเมื่อใดก็ตามที่แอป Fitbit เปิดอยู่ หรือทุกๆ 15 นาทีหากบลูทูธเปิดอยู่และแอปทำงานใน พื้นหลัง เมื่อกระบวนการซิงค์นี้เสร็จสมบูรณ์แล้ว ข้อมูลจะพร้อมใช้งานสำหรับบริการของบุคคลที่สามผ่าน Google Health API

มาตรฐานระยะทาง

ระยะทางของการออกกำลังกาย เช่น elevationGainMillimeters จะวัดเป็นมิลลิเมตรซึ่งเป็นหน่วยมาตรฐานด้วยเหตุผลต่อไปนี้

  1. การรักษาความแม่นยำของข้อมูล: เหตุผลที่สำคัญที่สุดในการใช้ มิลลิเมตรคือเพื่อให้มั่นใจว่าเราจะไม่สูญเสียความแม่นยำในข้อมูลที่เรา อ่านและให้ การใช้หน่วยที่ละเอียด เช่น มิลลิเมตร ช่วยให้เรา แสดงการวัดได้อย่างแม่นยำ
  2. การกำหนดมาตรฐาน: มิลลิเมตรเป็นหน่วยมาตรฐานที่ออกแบบมา ในบริการของเรา ความสอดคล้องนี้ช่วยให้มั่นใจได้ว่านักพัฒนาแอปจะได้รับประสบการณ์การใช้งานที่สม่ำเสมอ เมื่อโต้ตอบกับ API ส่วนต่างๆ
  3. รองรับระบบการวัดที่หลากหลาย: การใช้หน่วยฐาน เช่น มิลลิเมตร ช่วยให้ผู้พัฒนาสามารถแปลงเป็นหน่วยอื่นๆ ที่เลือกได้อย่างง่ายดาย ไม่ว่าจะเป็นระบบเมตริก ระบบอิมพิเรียล หรือระบบการวัดอื่นๆ

ความยาวของวันไม่คงที่

การจัดการเวลาโดย Health API จะจัดลำดับความสำคัญของเวลาของผู้ใช้เพื่อพิจารณา ความยาวของวันที่ที่เปลี่ยนแปลงได้ซึ่งเกิดจากเวลาออมแสงหรือการเดินทาง ระบบจะจัดเก็บจุดข้อมูลทุกจุดพร้อมทั้งการประทับเวลา UTC จริงและการชดเชย UTC ที่ใช้งานอยู่ ณ เวลาที่เกิดเหตุการณ์ ซึ่งจะช่วยให้ระบบทำสิ่งต่อไปนี้ได้

  • แมปเหตุการณ์กับช่วงเวลาที่แน่นอนในโลกจริง
  • แก้ไขเวลาให้ตรงกับบริบทท้องถิ่นของผู้ใช้สำหรับการรวบรวม

เวลาออมแสง

เมื่อถึงช่วงเวลาออมแสง การ "ย้อนกลับ" จะส่งผลให้วันตามปฏิทินมี 25 ชั่วโมง และข้อมูลรวมของวันที่ดังกล่าวจะมีข้อมูล 25 ชั่วโมง "การเปลี่ยนเวลา ฤดูร้อน" จะส่งผลให้วันตามกฎหมายมี 23 ชั่วโมง โดยเวลาจะเปลี่ยนกลับเป็นเวลา มาตรฐาน

ท่องเที่ยว

การเดินทางข้ามเขตเวลาอาจทำให้ระยะเวลาจริงของวันหนึ่งๆ แตกต่างกันมากยิ่งขึ้น

ใช้ปลายทาง dailyRollUp เพื่อปรับความแตกต่างของเขตเวลา ระบบจะระบุแหล่งที่มาของข้อมูลโดยอัตโนมัติเป็นวันในปฏิทินที่มีการบันทึกข้อมูล ตามเวลาท้องถิ่นของผู้ใช้ ซึ่งเป็นการ "เชื่อม" วันเข้าด้วยกัน แม้ว่าจะมีการเปลี่ยนเขตเวลา