下表列出所有資料類型,並提供多個資料欄,協助您瞭解 Google Health API 中各類型的表示方式,以及各類型適用的範圍。
資料類型dataType
filter 參數 |
可用的 作業 |
範圍 |
|---|---|---|
|
消耗的活動熱量
|
list、reconcile、rollup、dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
活動分鐘數
active-minutesactive_minutes
記錄類型: 間隔
相容裝置
|
list、reconcile、rollup、dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
活動區間分鐘數
active-zone-minutesactive_zone_minutes
記錄類型: 間隔
相容裝置
|
list、reconcile、rollup、dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
活動層級
|
list、reconcile | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
海拔高度
|
list、reconcile、rollup、dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
血糖
|
list、get、reconcile、rollup、dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
體脂肪
|
list、get、reconcile、rollup、dailyRollup、create、update、batchDelete | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
心率區間消耗的熱量
|
rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
核心體溫
|
list、get、reconcile、rollup、dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
每日心率變異
daily-heart-rate-variabilitydaily_heart_rate_variability
記錄類型: 每日
相容裝置
|
list、reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
每日心率區間
|
list、reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
每日血氧濃度
daily-oxygen-saturationdaily_oxygen_saturation
記錄類型: 每日
相容裝置
|
list、reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
每日呼吸速率
daily-respiratory-ratedaily_respiratory_rate
記錄類型: 每日
相容裝置
|
list、reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
每日靜止心率
daily-resting-heart-ratedaily_resting_heart_rate
記錄類型: 每日
相容裝置
|
list、reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
每日睡眠溫度變化
daily-sleep-temperature-derivationsdaily_sleep_temperature_derivations
記錄類型: 每日
相容裝置
|
list、reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
每日最大攝氧量
daily-vo2-maxdaily_vo2_max
記錄類型: 每日
相容裝置
|
list、reconcile | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
距離
distancedistance
記錄類型: 間隔
相容裝置
|
list、reconcile、rollup、dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
心電圖 (ECG)
electrocardiogramelectrocardiogram
記錄類型: 工作階段
相容裝置
|
list | .ecg.readonly |
運動
exerciseexercise
記錄類型: 工作階段
相容裝置
|
list、get、reconcile、create、update、batchDelete | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
樓層數
|
reconcile、rollup、dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
美食
|
list、get | .nutrition.readonly.nutrition.writeonly |
食物測量單位
food-measurement-unitfood_measurement_unit
記錄類型: 食物
相容裝置
|
list、get | .nutrition.readonly.nutrition.writeonly |
心率
heart-rateheart_rate
記錄類型: 範例
相容裝置
|
list、reconcile、rollup、dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
心率變異
heart-rate-variabilityheart_rate_variability
記錄類型: 範例
相容裝置
|
list、reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
身高
|
list、get、reconcile、create、update、batchDelete | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
飲水量記錄
|
list、get、reconcile、rollup、dailyRollup、create、update、batchDelete | .nutrition.readonly.nutrition.writeonly |
|
心律不整通知
|
list | .irn.readonly |
經期
menstrual-periodmenstrual_period
記錄類型: 間隔
|
create、update、batchDelete | .reproductive_health.writeonly |
情緒
moodsmoods
記錄類型: 範例
|
create、update、batchDelete | .mindfulness.writeonly |
營養記錄
nutrition-lognutrition_log
記錄類型: 範例
相容裝置
|
list、get、reconcile、rollup、dailyRollup、create、update、batchDelete | .nutrition.readonly.nutrition.writeonly |
排卵檢測
ovulation-testovulation_test
記錄類型: 範例
|
create、update、batchDelete | .reproductive_health.writeonly |
血氧濃度
oxygen-saturationoxygen_saturation
記錄類型: 範例
相容裝置
|
list、reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
呼吸速率睡眠摘要
respiratory-rate-sleep-summaryrespiratory_rate_sleep_summary
記錄類型: 範例
相容裝置
|
list、reconcile | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
跑步最大攝氧量
run-vo2-maxrun_vo2_max
記錄類型: 範例
相容裝置
|
list、reconcile、rollup、dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
久坐時間
sedentary-periodsedentary_period
記錄類型: 間隔
相容裝置
|
list、reconcile、rollup、dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
睡眠
sleepsleep
記錄類型: 工作階段
相容裝置
|
list、get、reconcile、create、update、batchDelete | .sleep.readonly.sleep.writeonly |
步驟
stepssteps
記錄類型: 間隔
相容裝置
|
list、reconcile、rollup、dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
游泳距離資料
swim-lengths-dataswim_lengths_data
記錄類型: 間隔
相容裝置
|
list、reconcile、rollup、dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
症狀
symptomssymptoms
記錄類型: 範例
|
create、update、batchDelete | .logged_symptoms.writeonly |
|
在心率區間的時間
|
list、reconcile、rollup、dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
總熱量
total-caloriestotal_calories
記錄類型: 間隔
相容裝置
|
rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
最大攝氧量
vo2-maxvo2_max
記錄類型: 範例
相容裝置
|
list、reconcile | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
權重
|
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 裝置和 Fitbit 行動應用程式每 15 分鐘就會自動同步一次。如果使用者使用 MobileTrack 追蹤活動,只要應用程式處於開啟狀態,MobileTrack 就會每小時同步一次。
查詢歷來資料
Google Health API 的主要優點之一,就是能夠追蹤使用者的運動表現,並長期監控健康指標。您可以查詢使用者記錄的資料,API 對應用程式可使用的歷史資料量沒有限制。
不過,查詢歷來資料時,仍須遵守標準的速率限制。為管理系統穩定性及避免過多酬載,Google Health API 會使用自動分頁功能,並採用端點專屬的頁面大小。請注意下列界線和行為:
- 自動分頁:如果您查詢的資料範圍很長,API 只會傳回第一頁結果,最多為該端點的頁面大小上限,並附上
nextPageToken。您必須使用nextPageToken要求後續頁面。 - 可變動的網頁大小:上限取決於端點和資料類型。大多數資料類型的頁面大小上限為 10,000。
不過,對於
exercise和sleep等特定資料類型,預設和最大頁面大小上限為 25。舉例來說,如果用戶端要求過去 10 年的所有睡眠資料,API 仍只會在第一頁傳回 25 個睡眠記錄。 - 匯總日期範圍限制:對於資料匯總和彙整端點 (例如
rollUp和dailyRollUp),查詢日期範圍會根據資料類型受到限制:calories-in-heart-rate-zone、heart-rate、active-minutes和total-calories的範圍上限為 14 天。- 所有其他匯總資料類型的日期範圍上限為 90 天。
視應用程式需要的歷來資料量而定,如要擷取整個資料集,必須依序逐頁分頁。設計應用程式的資料同步程序時,請將這點納入考量。
為確保最佳效能並避免發生 API 錯誤,查詢歷來資料時請遵循下列準則:
分階段同步處理資料 (熱載入與冷載入)
- 初始「熱」載入:在主要載入序列期間,只擷取並算繪最近 7 到 14 天的資料。這樣一來,使用者就能立即查看資料,不必等待長時間執行的查詢。
- 背景「冷」載入:主要 UI 算繪完成後,將較舊的歷來資料擷取作業委派給非同步、低優先順序佇列或背景程序。
匯總查詢的查詢區塊
- 由於匯總和每日匯總端點會強制執行日期範圍上限 (視資料類型而定,為 14 或 90 天),因此您必須將大型歷來匯總查詢,分解為這些限制內較小的連續間隔。
- 請安全地批次處理或依序執行這些子查詢,以免超出並行限制,並維持穩定的 UI 進度指標。
運用預先匯總的匯總資料
重新架構總覽資訊主頁和趨勢圖表,改用預先匯總的摘要端點 (例如 DailyRollUpDataPoints)。這會大幅減少後端的運算負荷,以及用戶端的網路傳輸時間。
彈性錯誤處理 (智慧重試)
- 遇到速率限制 (
429 Too Many Requests) 和伺服器閘道逾時 (504 Gateway Timeout) 時,請嚴格處理指數輪詢。切勿立即重試大型失敗的酬載。即時重試會加劇後端壅塞,並導致系統效能下降。
第三方存取權
Fitbit 裝置無法直接與第三方應用程式或服務通訊。這些裝置只能與 Fitbit 行動應用程式通訊及同步。
只要開啟 Fitbit 應用程式,裝置就會全天自動同步資料。如果藍牙已啟用,且應用程式在背景執行,裝置每 15 分鐘就會同步一次。同步程序完成後,第三方服務就能透過 Google Health API 存取資料。
距離標準
運動距離 (例如 elevationGainMillimeters) 會以公釐做為標準單位,原因如下:
- 維持資料精確度:使用公釐的最重要原因,是確保我們讀取及提供的資料不會失去任何精確度。使用公釐等精細單位,可讓我們以高精確度表示測量結果。
- 標準化:毫米是我們服務中設計的標準單位。這項一致性可確保開發人員與 API 不同部分互動時,都能獲得一致的體驗。
- 廣泛支援測量系統:使用毫米等基本單位,開發人員就能輕鬆轉換為任何其他所選單位,無論他們使用的是公制、英制或其他測量系統。
日長變化
健康資料 API 會優先處理使用者的時間,以因應日光節約時間或旅行造成的每日時間長度變化。每個資料點都會儲存實際的 UTC 時間戳記,以及事件發生時有效的 UTC 時差。這樣一來,系統就能:
- 將事件對應至精確的實際時間點。
- 將時間修正為使用者的當地時區,以便進行匯總。
日光節約時間
在日光節約時間期間,「調慢」會導致民用日有 25 小時,而該日期的匯總資料會包含 25 小時的資料。「春季前進」會導致民用日為 23 小時,時間會調回標準時間。
旅遊
跨時區旅行時,單一民事日期的實際長度可能會出現更明顯的差異。
使用 dailyRollUp 端點來調整時區差異。系統會根據使用者的當地時間,自動將資料歸因於記錄資料的日曆日期,即使時區有所變更,也能有效「縫合」當天的資料。