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

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

ช่องประเภทข้อมูล

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

ตาราง: คำอธิบายช่องประเภทข้อมูลของ Google Health API
ช่อง คำอธิบาย
dataType ตัวระบุที่คั่นด้วยขีดกลาง (เช่น active-minutes) ที่ใช้ใน URL ของปลายทาง
พารามิเตอร์ filter ตัวระบุที่คั่นด้วยขีดล่าง (เช่น active_minutes) ซึ่งใช้เป็นค่าสำหรับพารามิเตอร์ตัวกรอง dataType ในคำขอสรุปรายวันและคำขอสรุป
ประเภทระเบียน

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

  • Interval (แสดงการวัดที่บันทึกไว้ในช่วงระยะเวลาหนึ่ง)
  • Sample (แสดงการวัดค่าแบบทันที)
  • Daily (แสดงการวัดผลที่รวบรวมหรือบันทึกเป็นรายวัน)
  • Session (แสดงถึงช่วงการบันทึกอย่างต่อเนื่อง เช่น การออกกำลังกายหรือเซสชันคลื่นไฟฟ้าหัวใจ (ECG))
  • Food (แสดงรายการอาหารหรือเอนทิตีข้อมูลที่เกี่ยวข้องกับโภชนาการ)
การดำเนินการที่ใช้ได้ แสดงรายการเมธอด API ที่รองรับสำหรับประเภทข้อมูล (เช่น list, create และ rollUp)
ขอบเขต ขอบเขต OAuth ที่จำเป็นในการเข้าถึงประเภทข้อมูล
การรองรับเว็บฮุค ระบุว่าประเภทข้อมูลรองรับการแจ้งเตือนแบบเรียลไทม์โดยใช้เว็บฮุคเมื่อมีการซิงค์ข้อมูลใหม่
การรองรับ True Zero ระบุว่าประเภทข้อมูลรองรับการบันทึกค่าศูนย์ที่ชัดเจนเพื่อแยกความแตกต่างระหว่างค่าศูนย์ที่ใช้งานอยู่ (เช่น นาทีที่แอ็กทีฟเป็นศูนย์) กับข้อมูลที่ขาดหายไปหรือไม่ได้รับการบันทึก
ความละเอียดของพื้นที่เก็บข้อมูล ช่วงเวลาการบันทึกหรือการสุ่มตัวอย่างขั้นต่ำที่จัดเก็บจุดข้อมูล (เช่น 1 นาทีสำหรับ steps) สำหรับการรวมข้อมูล ค่านี้แสดงถึง windowSize ขั้นต่ำที่แนะนำเพื่อให้แน่ใจว่ามีการรวมข้อมูลที่กระจายอย่างสม่ำเสมอโดยไม่มีอาร์ติแฟกต์ข้อมูลช่วงเวลาย่อย
อุปกรณ์ที่เข้ากันได้ รายการอุปกรณ์จริงที่ขยายได้ซึ่งสามารถบันทึกและซิงค์ข้อมูลประเภทนี้กับ Google Health API (โดยใช้แอป Fitbit)

ตาราง: ประเภทข้อมูลของ Google Health API
ประเภทข้อมูล การดำเนินการ
ที่ใช้ได้
ขอบเขต
พลังงานที่เผาผลาญขณะทำกิจกรรม
dataType: active-energy-burned
filter parameter: active_energy_burned
ประเภทระเบียน: Interval
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
นาทีที่แอ็กทีฟ
dataType: active-minutes
filter parameter: active_minutes
ประเภทระเบียน: Interval
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที

อุปกรณ์ที่เข้ากันได้

  • 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
นาทีในโซนแอ็กทีฟ
dataType: active-zone-minutes
filter parameter: active_zone_minutes
ประเภทระเบียน: Interval
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที

อุปกรณ์ที่เข้ากันได้

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ระดับกิจกรรม
dataType: activity-level
filter parameter: activity_level
ประเภทระเบียน: Interval
รายการ, ตรวจสอบยอดคงเหลือ .activity_and_fitness.readonly
.activity_and_fitness.writeonly
Altitude
dataType: altitude
filter parameter: altitude
ประเภทระเบียน: Interval
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
น้ำตาลกลูโคสในเลือด
dataType: blood-glucose
filter parameter: blood_glucose
ประเภทระเบียน: ตัวอย่าง
list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
ไขมันร่างกาย
dataType: body-fat
filter parameter: body_fat
ประเภทระเบียน: ตัวอย่าง

อุปกรณ์ที่เข้ากันได้

list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
แคลอรีในโซนอัตราการเต้นของหัวใจ
dataType: calories-in-heart-rate-zone
filter parameter: calories_in_heart_rate_zone
ประเภทระเบียน: Interval
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที
rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
อุณหภูมิแกนกลางของร่างกาย
dataType: core-body-temperature
filter parameter: core_body_temperature
ประเภทระเบียน: ตัวอย่าง
list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
ความผันแปรของอัตราการเต้นของหัวใจประจำวัน
dataType: daily-heart-rate-variability
filter parameter: daily_heart_rate_variability
ประเภทการบันทึก: รายวัน

อุปกรณ์ที่เข้ากันได้

รายการ, ตรวจสอบยอดคงเหลือ .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
โซนอัตราการเต้นของหัวใจประจำวัน
dataType: daily-heart-rate-zones
filter parameter: daily_heart_rate_zones
ประเภทการบันทึก: รายวัน
รายการ, ตรวจสอบยอดคงเหลือ .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
ความอิ่มตัวของออกซิเจนรายวัน
dataType: daily-oxygen-saturation
filter parameter: daily_oxygen_saturation
ประเภทการบันทึก: รายวัน

อุปกรณ์ที่เข้ากันได้

รายการ, ตรวจสอบยอดคงเหลือ .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
อัตราการหายใจรายวัน
dataType: daily-respiratory-rate
filter parameter: daily_respiratory_rate
ประเภทการบันทึก: รายวัน

อุปกรณ์ที่เข้ากันได้

รายการ, ตรวจสอบยอดคงเหลือ .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
อัตราการเต้นของหัวใจขณะพักรายวัน
dataType: daily-resting-heart-rate
filter parameter: daily_resting_heart_rate
ประเภทการบันทึก: รายวัน

อุปกรณ์ที่เข้ากันได้

รายการ, ตรวจสอบยอดคงเหลือ .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
ค่าเบี่ยงเบนของอุณหภูมิขณะนอนหลับรายวัน
dataType: daily-sleep-temperature-derivations
filter parameter: daily_sleep_temperature_derivations
ประเภทการบันทึก: รายวัน

อุปกรณ์ที่เข้ากันได้

รายการ, ตรวจสอบยอดคงเหลือ .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
ปริมาณการใช้ออกซิเจนสูงสุดรายวัน
dataType: daily-vo2-max
filter parameter: daily_vo2_max
ประเภทการบันทึก: รายวัน

อุปกรณ์ที่เข้ากันได้

รายการ, ตรวจสอบยอดคงเหลือ .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ระยะทาง
dataType: distance
filter parameter: distance
ประเภทระเบียน: Interval
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที

อุปกรณ์ที่เข้ากันได้

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
คลื่นไฟฟ้าหัวใจ (ECG)
dataType: electrocardiogram
filter parameter: electrocardiogram
ประเภทระเบียน: เซสชัน

อุปกรณ์ที่เข้ากันได้

list .ecg.readonly
การออกกำลังกาย
dataType: exercise
filter parameter: exercise
ประเภทระเบียน: เซสชัน

อุปกรณ์ที่เข้ากันได้

list, get, reconcile, create, update, batchDelete .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ชั้น
dataType: floors
filter parameter: floors
ประเภทระเบียน: Interval
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที
reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
อาหาร
dataType: food
filter parameter: food
ประเภทระเบียน: อาหาร
list, get .nutrition.readonly
.nutrition.writeonly
หน่วยวัดอาหาร
dataType: food-measurement-unit
filter parameter: food_measurement_unit
ประเภทระเบียน: อาหาร

อุปกรณ์ที่เข้ากันได้

list, get .nutrition.readonly
.nutrition.writeonly
อัตราการเต้นของหัวใจ
dataType: heart-rate
filter parameter: heart_rate
ประเภทระเบียน: ตัวอย่าง
ความละเอียดของพื้นที่เก็บข้อมูล: 1 วินาที

อุปกรณ์ที่เข้ากันได้

list, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
ความผันแปรของอัตราการเต้นของหัวใจ
dataType: heart-rate-variability
filter parameter: heart_rate_variability
ประเภทระเบียน: ตัวอย่าง

อุปกรณ์ที่เข้ากันได้

รายการ, ตรวจสอบยอดคงเหลือ .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
ส่วนสูง
dataType: height
filter parameter: height
ประเภทระเบียน: ตัวอย่าง
list, get, reconcile, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
บันทึกปริมาณน้ำที่ดื่ม
dataType: hydration-log
filter parameter: hydration_log
ประเภทระเบียน: เซสชัน
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly
การแจ้งเตือนเมื่อจังหวะการเต้นของหัวใจผิดปกติ
dataType: irregular-rhythm-notification
filter parameter: irregular_rhythm_notification
ประเภทระเบียน: เซสชัน
list .irn.readonly
ระยะเวลาที่มีประจำเดือน
dataType: menstrual-period
filter parameter: menstrual_period
ประเภทระเบียน: Interval
create, update, batchDelete .reproductive_health.writeonly
โทนภาพ
dataType: moods
filter parameter: moods
ประเภทระเบียน: ตัวอย่าง
create, update, batchDelete .mindfulness.writeonly
บันทึกโภชนาการ
dataType: nutrition-log
filter parameter: nutrition_log
ประเภทระเบียน: เซสชัน

อุปกรณ์ที่เข้ากันได้

list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly
การทดสอบการตกไข่
dataType: ovulation-test
filter parameter: ovulation_test
ประเภทระเบียน: ตัวอย่าง
create, update, batchDelete .reproductive_health.writeonly
ความอิ่มตัวของออกซิเจน
dataType: oxygen-saturation
filter parameter: oxygen_saturation
ประเภทระเบียน: ตัวอย่าง
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที

อุปกรณ์ที่เข้ากันได้

รายการ, ตรวจสอบยอดคงเหลือ .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
สรุปอัตราการหายใจขณะนอนหลับ
dataType: respiratory-rate-sleep-summary
filter parameter: respiratory_rate_sleep_summary
ประเภทระเบียน: ตัวอย่าง

อุปกรณ์ที่เข้ากันได้

รายการ, ตรวจสอบยอดคงเหลือ .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
ปริมาณการใช้ออกซิเจนสูงสุด (VO2 Max) ขณะวิ่ง
dataType: run-vo2-max
filter parameter: run_vo2_max
ประเภทระเบียน: ตัวอย่าง

อุปกรณ์ที่เข้ากันได้

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ระยะเวลาที่ไม่มีการเคลื่อนไหว
dataType: sedentary-period
filter parameter: sedentary_period
ประเภทระเบียน: Interval

อุปกรณ์ที่เข้ากันได้

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
เซ็นเซอร์อุณหภูมิผิวหนัง v4beta
dataType: skin-temperature-sensors
filter parameter: skin_temperature_sensors
ประเภทระเบียน: ตัวอย่าง

อุปกรณ์ที่เข้ากันได้

list .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
การนอนหลับ
dataType: sleep
filter parameter: sleep
ประเภทระเบียน: เซสชัน

อุปกรณ์ที่เข้ากันได้

list, get, reconcile, create, update, batchDelete .sleep.readonly
.sleep.writeonly
ขั้นตอน
dataType: steps
filter parameter: steps
ประเภทระเบียน: Interval
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที

อุปกรณ์ที่เข้ากันได้

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ข้อมูลความยาวสระว่ายน้ำ
dataType: swim-lengths-data
filter parameter: swim_lengths_data
ประเภทระเบียน: Interval

อุปกรณ์ที่เข้ากันได้

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
อาการ
dataType: symptoms
filter parameter: symptoms
ประเภทระเบียน: ตัวอย่าง
create, update, batchDelete .logged_symptoms.writeonly
เวลาในโซนอัตราการเต้นของหัวใจ
dataType: time-in-heart-rate-zone
filter parameter: time_in_heart_rate_zone
ประเภทระเบียน: Interval
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
แคลอรีทั้งหมด
dataType: total-calories
filter parameter: total_calories
ประเภทระเบียน: Interval
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที

อุปกรณ์ที่เข้ากันได้

rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ปริมาณการใช้ออกซิเจนสูงสุด
dataType: vo2-max
filter parameter: vo2_max
ประเภทระเบียน: ตัวอย่าง

อุปกรณ์ที่เข้ากันได้

รายการ, ตรวจสอบยอดคงเหลือ .activity_and_fitness.readonly
.activity_and_fitness.writeonly
น้ำหนัก
dataType: weight
filter parameter: weight
ประเภทระเบียน: ตัวอย่าง

อุปกรณ์ที่เข้ากันได้

list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly

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

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

  • ข้อกำหนดของตัวกรอง: ประเภทข้อมูลที่ได้มาแบบอ่านอย่างเดียวบางประเภท เช่น total-calories ต้องใช้ตัวกรองที่ระบุเวลาเริ่มต้นของช่วงเวลา (โดยใช้เวลาจริงหรือเวลาตามปฏิทิน)
  • ขีดจำกัดช่วงการค้นหา: ปลายทางการรวมข้อมูลแบบ Rollup และแบบ Rollup รายวันจะบังคับใช้ขีดจำกัดช่วงการค้นหาสูงสุดตามประเภทข้อมูล ดังนี้
    • ช่วงการค้นหาสูงสุด 14 วันสำหรับ calories-in-heart-rate-zone, heart-rate, active-minutes และ total-calories
    • ช่วงการค้นหาสูงสุด 90 วันสำหรับข้อมูลประเภทอื่นๆ ทั้งหมด
  • ขนาดกรอบเวลาการรวม: เมื่อเรียกใช้ปลายทาง rollUp ระยะเวลา windowSize ต้องมีอย่างน้อย 1 วินาที ("1s") ระบบจะปฏิเสธระยะเวลาที่สั้นกว่า 1 วินาทีด้วย INVALID_ARGUMENT นอกจากนี้ ให้เลือก windowSize ที่เท่ากับหรือมากกว่าความละเอียดของพื้นที่เก็บข้อมูลที่สำคัญของประเภทข้อมูล (เช่น "60s" สำหรับประเภทข้อมูลที่มีช่วงเวลา 1 นาที เช่น steps และ distance) เพื่อหลีกเลี่ยงการกระจายที่ไม่สม่ำเสมอในแต่ละช่วงเวลาย่อย โปรดดูรายละเอียดที่หัวข้อกรอบเวลาการรวมข้อมูลและความละเอียดของพื้นที่เก็บข้อมูล

ประเภทข้อมูลรายวันเทียบกับข้อมูลช่วงเวลา

สำหรับเมตริกทางสรีรวิทยาบางอย่าง เช่น ความแปรปรวนของอัตราการเต้นของหัวใจ (HRV) หรือความอิ่มตัวของออกซิเจน (SpO2) นั้น Google Health API จะให้ข้อมูล 2 ประเภทที่แตกต่างกัน ได้แก่ เวอร์ชันรายวันและเวอร์ชันช่วงเวลา การทำความเข้าใจความแตกต่างนี้เป็นกุญแจสำคัญในการเลือกเมตริกที่เหมาะสมสำหรับกรณีการใช้งานของคุณ

  • รายวัน: ข้อมูลสรุปที่รวบรวมไว้ล่วงหน้าเพียงรายการเดียวสำหรับทั้งวัน ใช้ตารางนี้สำหรับแนวโน้มระดับสูงและแดชบอร์ดรายวันเพื่อประหยัดการประมวลผล

  • ช่วงเวลา: การวัดค่าแบบละเอียดและมีความละเอียดสูงที่ดำเนินการตลอดทั้งวัน ใช้ข้อมูลนี้เพื่อสร้างแผนภูมิความผันผวนระหว่างวันหรือทำการวิเคราะห์เชิงลึกแบบรายชั่วโมง

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

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

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

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

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

  • การแบ่งหน้าอัตโนมัติ: หากคุณค้นหาข้อมูลเป็นระยะเวลานาน API จะแสดงผลลัพธ์หน้าแรกเท่านั้นจนถึงขีดจำกัดขนาดหน้าสำหรับปลายทางนั้น พร้อมกับ nextPageToken คุณต้องใช้ nextPageToken เพื่อขอหน้าถัดไป
  • ขนาดหน้าเว็บที่แปรผัน: ขีดจำกัดสูงสุดจะขึ้นอยู่กับปลายทางและประเภทข้อมูล สำหรับข้อมูลส่วนใหญ่ ขนาดหน้าจะถูกจำกัดไว้ที่สูงสุด 10,000 รายการ อย่างไรก็ตาม สำหรับข้อมูลบางประเภท เช่น exercise และ sleep ขนาดหน้าเว็บเริ่มต้นและสูงสุดจะจำกัดอยู่ที่ 25 รายการ ตัวอย่างเช่น หากไคลเอ็นต์ขอข้อมูลการนอนหลับทั้งหมดในช่วง 10 ปีที่ผ่านมา API จะยังคงแสดงเซสชันการนอนหลับเพียง 25 เซสชันในหน้าแรก
  • ข้อจำกัดช่วงวันที่ของข้อมูลสรุป: สำหรับปลายทางการสรุปและการรวมข้อมูล (เช่น rollUp และ dailyRollUp) ช่วงวันที่ของคำค้นหาจะถูกจำกัดตามประเภทข้อมูล ดังนี้
    • ช่วงสูงสุด 14 วันสำหรับ calories-in-heart-rate-zone, heart-rate, active-minutes และ total-calories
    • ช่วงสูงสุด 90 วันสําหรับข้อมูลสรุปประเภทอื่นๆ ทั้งหมด

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

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

การซิงค์ข้อมูลแบบแบ่งระยะ (Hot Load เทียบกับ Cold Load)

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

การแบ่งกลุ่มการค้นหาเพื่อรวมข้อมูล

  • เนื่องจากปลายทาง Rollup และ Daily Rollup บังคับใช้ขีดจำกัดช่วงวันที่สูงสุด (14 หรือ 90 วัน ขึ้นอยู่กับประเภทข้อมูล) คุณจึงต้องแบ่งการค้นหาการรวมข้อมูลย้อนหลังขนาดใหญ่ออกเป็นช่วงย่อยๆ ตามลำดับภายในขีดจำกัดเหล่านี้
  • จัดกลุ่มหรือจัดลำดับการค้นหาย่อยเหล่านี้อย่างปลอดภัยเพื่อให้เป็นไปตามขีดจำกัดการทำงานพร้อมกันและรักษาตัวบ่งชี้ความคืบหน้าของ UI ให้คงที่

ใช้ประโยชน์จาก Roll-up ที่รวมไว้ล่วงหน้า

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

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

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

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

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

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

การกรองคุณภาพของข้อมูลและความถูกต้อง

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

  • สำหรับความอิ่มตัวของออกซิเจนในเลือดระดับนาที (oxygen-saturation) API จะแสดงเฉพาะค่าที่อ่านได้ที่ตรวจสอบแล้ว และนำนาทีที่ทำเครื่องหมายว่าไม่ถูกต้องออกเนื่องจากการเคลื่อนไหวของแขน การสวมใส่นาฬิกาที่หลวม หรือคะแนนความเชื่อมั่นของเซ็นเซอร์ต่ำกว่า 50% รวมถึง 3 นาทีก่อนและหลังค่าที่อ่านได้ที่ไม่ถูกต้อง และช่วงเวลาที่ถูกต้องที่แยกออกมาซึ่งสั้นกว่า 4 นาที ด้วยเหตุนี้ ความครอบคลุมระดับนาทีจึงอาจมีข้อมูลไม่ครบถ้วนและอาจมีช่องว่าง ดูรายละเอียดได้ที่การกรอง SpO2 ระดับนาทีและความถูกต้องของข้อมูล

มาตรฐานระยะห่าง

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

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

ความยาวของวันแบบแปรผัน

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

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

เวลาออมแสง

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

ท่องเที่ยว

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

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