8AKER零 需求填表 支持贊助

首頁/日常紀錄/強化・運動與健康

把 Strava、iPhone 和體脂計,接成一張身體儀表

也屬於・操作數據串接Strava體脂計儀表板

我想要的不是一個運動 App,而是一張跟實際生活連得起來的儀表:出差那週動得少、休息那週睡得好、體脂跟著怎麼走。

所以我沒有再多裝一個 App,而是讓三個來源,匯到同一個地方。

先看成果

做好的儀表就放在「強化」頁,打開就能看到每天更新的樣子:連續運動週數、運動月曆、每日步數、體重體脂的每週平均。

👉 到「強化」頁看這張身體儀表

下面是我怎麼把它接起來的。

整體長這樣

  • Strava(跑步、運動紀錄)→ 網站自己去拿
  • OMRON 體重體組成計 KRD-703T(體重、體脂)→ iPhone 捷徑(帶入日期、體重、體脂等參數)→ 網站
  • 小米手錶(每日步數)→ 小米運動健康 → iPhone 健康 App → 捷徑 → 網站

重點是:iPhone 的「捷徑」當搬運工。 資料只要拿得到,我就能用同一種方式送回網站,不用綁死單一品牌。

一、Strava:授權一次,之後網站自己更新

  • 做法:在後台連接一次 Strava。之後有人打開強化頁,網站就會檢查:距離上次同步超過 6 小時,才去 Strava 拿新資料。
  • 為什麼不是在網頁上直接連:Strava 的授權金鑰不能放在瀏覽器裡,會被人看到。所以放在後端,網頁只拿整理好的結果。
  • 為什麼是 6 小時:Strava 有呼叫次數上限,頻繁去問會被擋。
  • 第一次與之後:第一次把歷史全部拉回來(我的是 2022 年起),之後只補最近 35 天。
  • 能看到什麼:連續運動週數、運動月曆、1/5/10 公里最佳成績。
  • 10K 預估有標「估算」:它是用近 90 天最快的 5 公里換算的,不是實測,我不想讓數字看起來比它真實。

二、iPhone 捷徑:把資料送回網站

  • 做法:捷徑把參數(日期、體重、體脂、步數……)整理成一包,用「取得 URL 內容(POST)」送到我網站後端的收件口。
  • 為什麼要一組金鑰:收件口不是誰都能寫。標頭放我自己的金鑰,網站那邊只存金鑰的雜湊,連我自己都拿不回原本那串。
  • 為什麼不用 BetterMe 之類的 App:多半是訂閱制、封閉的,資料拿不出來。接不出來,就沒辦法跟生活連在一起。

三、OMRON KRD-703T:體脂的重點是「條件一致」

  • 做法:站上體組成計量完,用 iPhone 捷徑把日期、體重、體脂這幾個參數,一起送到網站後端。【待確認:體重、體脂的數值是捷徑自動讀出來的,還是每次自己輸入?】
  • 補充:這台的官方手冊只提到藍牙傳到 OMRON connect,沒有寫 Apple 健康的連動,所以我不假設它會自動進健康 App。
  • 量測習慣(手冊的建議):
    • 起床後、或飯後 2 小時以上
    • 不要在洗完澡、剛運動完、喝酒後測
    • 放在硬而平的地面,腳底貼緊電極
  • 為什麼要這麼在意條件:體脂率對身體水分很敏感,條件一變,數字就不能比。
  • 為什麼儀表板放的是「每週平均」:單日的起伏太大,看一天會被自己嚇到,看一週才是趨勢。

四、小米手錶步數:只取「一個來源」

  • 做法:小米運動健康把步數寫進健康 App,捷徑每天 23:30 抓當天總和,送進網站。
  • 為什麼要指定來源:健康 App 裡有 iPhone、手錶、舊手機好幾份紀錄,直接加總會重複算。我實測:沒指定來源是 185 步,只取手錶是 161 步,和健康 App 顯示的 162 步幾乎一樣。
  • 同一天重送會覆蓋,不會累加,所以補跑一次也沒關係。

隱私:只顯示彙總,不顯示原始資料

  • 網站只輸出整理後的數字,原始資料留在資料庫,不放在 GitHub。
  • 體重、體脂有一個開關,我決定哪些要公開。

這樣串完之後

數據先各自累積幾週,之後的方向是:每週自動整理成文章草稿,我確認過才發布;再補一段自己的感想;最後請 AI 當教練,給我下週的建議。

我的感想

【待補:這套東西做完之後,你看自己運動、看自己身體的方式有什麼不同?一句話就夠。】

這篇屬於作品8AKER零 網站與 Studio 後台看作品 →