ประเภทข้อมูล 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 ที่จำเป็นต่อการเข้าถึงประเภทข้อมูล
การรองรับเว็บฮุค ระบุว่าประเภทข้อมูลรองรับการแจ้งเตือนแบบเรียลไทม์โดยใช้ Webhook เมื่อมีการซิงค์ข้อมูลใหม่
รองรับค่าศูนย์จริง ระบุว่าประเภทข้อมูลรองรับการบันทึกค่าศูนย์ที่ชัดเจน เพื่อแยกความแตกต่างระหว่างค่าศูนย์ที่ใช้งานอยู่ (เช่น นาทีที่ใช้งานอยู่เป็นศูนย์) กับข้อมูลที่ขาดหายไปหรือไม่ได้บันทึก
ความละเอียดของพื้นที่เก็บข้อมูล ช่วงเวลาการบันทึกหรือการสุ่มตัวอย่างขั้นต่ำที่จัดเก็บจุดข้อมูล (เช่น 1 นาทีสำหรับ steps) สำหรับการสรุป ค่านี้แสดงถึง windowSize ขั้นต่ำที่แนะนำ เพื่อให้มั่นใจว่าการรวบรวมจะกระจายอย่างสม่ำเสมอโดยไม่มีข้อมูลช่วงย่อย
อุปกรณ์ที่เข้ากันได้ รายการอุปกรณ์จริงที่ขยายได้ซึ่งสามารถบันทึกและซิงค์ประเภทข้อมูลนี้กับ Google Health API (โดยใช้แอป Fitbit)

ตาราง: ประเภทข้อมูล Google Health API
ประเภทข้อมูล
การดำเนินการที่ใช้ได้
ขอบเขต
พลังงานที่ใช้ไป
dataType: active-energy-burned
พารามิเตอร์ตัวกรอง: active_energy_burned
ประเภทบันทึก: ช่วงเวลา
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
นาทีที่ใช้งาน
dataType: active-minutes
พารามิเตอร์ตัวกรอง: active_minutes
ประเภทบันทึก: ช่วงเวลา
ความละเอียดของพื้นที่เก็บข้อมูล: 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
พารามิเตอร์ตัวกรอง: active_zone_minutes
ประเภทบันทึก: ช่วงเวลา
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที

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

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ระดับกิจกรรม
dataType: activity-level
พารามิเตอร์ตัวกรอง: activity_level
ประเภทบันทึก: ช่วงเวลา
รายการ, ปรับยอด .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ระดับความสูง
dataType: altitude
พารามิเตอร์ตัวกรอง: altitude
ประเภทบันทึก: ช่วงเวลา
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที
list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
น้ำตาลกลูโคสในเลือด
dataType: blood-glucose
พารามิเตอร์ตัวกรอง: blood_glucose
ประเภทระเบียน: ตัวอย่าง
list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
ไขมันในร่างกาย
dataType: body-fat
พารามิเตอร์ตัวกรอง: 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
พารามิเตอร์ตัวกรอง: calories_in_heart_rate_zone
ประเภทบันทึก: ช่วงเวลา
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที
rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
อุณหภูมิแกนกลางของร่างกาย
dataType: core-body-temperature
พารามิเตอร์ตัวกรอง: core_body_temperature
ประเภทระเบียน: ตัวอย่าง
list, get, reconcile, rollup, dailyRollup .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
ความผันแปรของอัตราการเต้นของหัวใจรายวัน
dataType: daily-heart-rate-variability
พารามิเตอร์ตัวกรอง: daily_heart_rate_variability
ประเภทระเบียน: รายวัน

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

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

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

รายการ, ปรับยอด .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
อัตราการหายใจรายวัน
dataType: daily-respiratory-rate
พารามิเตอร์ตัวกรอง: daily_respiratory_rate
ประเภทระเบียน: รายวัน

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

รายการ, ปรับยอด .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
อัตราการเต้นของหัวใจขณะพักประจำวัน
dataType: daily-resting-heart-rate
พารามิเตอร์ตัวกรอง: daily_resting_heart_rate
ประเภทระเบียน: รายวัน

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

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

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

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

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

รายการ, ปรับยอด .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ระยะทาง
dataType: distance
พารามิเตอร์ตัวกรอง: distance
ประเภทบันทึก: ช่วงเวลา
ความละเอียดของพื้นที่เก็บข้อมูล: 1 นาที

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

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

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

list .ecg.readonly
การออกกำลังกาย
dataType: exercise
พารามิเตอร์ตัวกรอง: exercise
ประเภทระเบียน: เซสชัน

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

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

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

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

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

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

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

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

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

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

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

รายการ, ปรับยอด .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
สรุปการนอนหลับเกี่ยวกับอัตราการหายใจ
dataType: respiratory-rate-sleep-summary
พารามิเตอร์ตัวกรอง: respiratory_rate_sleep_summary
ประเภทระเบียน: ตัวอย่าง

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

รายการ, ปรับยอด .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly
ปริมาณการใช้ออกซิเจนสูงสุดขณะวิ่ง
dataType: run-vo2-max
พารามิเตอร์ตัวกรอง: run_vo2_max
ประเภทระเบียน: ตัวอย่าง

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

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ระยะเวลาอยู่กับที่ไม่เคลื่อนไหว
dataType: sedentary-period
พารามิเตอร์ตัวกรอง: sedentary_period
ประเภทบันทึก: ช่วงเวลา

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

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
การนอนหลับ
dataType: sleep
พารามิเตอร์ตัวกรอง: sleep
ประเภทระเบียน: เซสชัน

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

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

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

list, reconcile, rollup, dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly
ข้อมูลความยาวของสระว่ายน้ำ
dataType: swim-lengths-data
พารามิเตอร์ตัวกรอง: swim_lengths_data
ประเภทบันทึก: ช่วงเวลา

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

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

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

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

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

รายการ, ปรับยอด .activity_and_fitness.readonly
.activity_and_fitness.writeonly
น้ำหนัก
dataType: weight
พารามิเตอร์ตัวกรอง: weight
ประเภทระเบียน: ตัวอย่าง

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

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

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

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

  • ข้อกำหนดของตัวกรอง: ประเภทข้อมูลที่ได้มาแบบอ่านอย่างเดียวบางประเภท เช่น total-calories ต้องมีตัวกรองที่ระบุเวลาเริ่มต้นของช่วง (ใช้เวลาจริงหรือเวลาพลเรือน)
  • ขีดจํากัดช่วงการค้นหา: จุดปลายทางการรวบรวมข้อมูลแบบสรุปและแบบสรุปรายวัน บังคับใช้ขีดจํากัดช่วงการค้นหาสูงสุดตามประเภทข้อมูล
    • ช่วงการค้นหาสูงสุด 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 ประเภทที่แตกต่างกัน ได้แก่ เวอร์ชันรายวันและเวอร์ชันช่วงเวลา การทำความเข้าใจความแตกต่างเป็นกุญแจสำคัญในการเลือกเมตริกที่เหมาะสมกับกรณีการใช้งานของคุณ

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

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

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

การอัปเดตข้อมูลของผู้ใช้จะพร้อมใช้งานหลังจากที่ผู้ใช้ซิงค์เครื่องมือติดตามกิจกรรมหรือป้อนข้อมูลใหม่ลงในแอป Fitbit บนมือถือหรือเว็บแอปด้วยตนเองเท่านั้น อุปกรณ์ Fitbit และแอป Fitbit บนมือถือจะซิงค์โดยอัตโนมัติทุกๆ 15 นาทีเมื่อแอป Fitbit เปิดอยู่บนอุปกรณ์เคลื่อนที่ และทั้ง 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

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

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

การแบ่งคำค้นหาเพื่อการรวม

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

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

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

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

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

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

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

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

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

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

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

ความยาวของวันแตกต่างกัน

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

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

เวลาออมแสง

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

ท่องเที่ยว

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

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