Fitbitは WiFi体組成計と連携して体重、体脂肪率を記録することができる。Fitbit自体が製造販売しているWiFi体組成計「Fitbit Aria」との連携が一番自然だが、Fitbit以外が製造販売しているメジャーなWiFi体組成計とも連携できる。内部的に体組成計を識別する文字列を一緒に記録している。
運動するきっかけとして「減量のため」というのはかなり上位に来るだろうから、もう少し扱いの重要度を上げても良さそうなのだが、オプション的な扱いである。「Aria」で計測したデータであってもサードパーティ製体重計で計測したデータであっても、機能上は同じように扱われる。
API概要
以下に体脂肪率を取得するRESTfulAPIを示す。RESTfulAPI は3パターン用意されている。なお、別のエントリで紹介するAPIにより、体重、体脂肪率、BMIを一度に取得できる。
1 2 3 |
GET /1/user/[user-id]/body/log/fat/date/[date].json GET /1/user/[user-id]/body/log/fat/date/[date]/[period].json GET /1/user/[user-id]/body/log/fat/date/[base-date]/[end-date].json |
ドキュメントには以下の記述がある。”should not be“は「すべきではない」ではなく「あってはならない」。1か月以上のデータを1度に取得することはできない。
Range end date when date range is provided. Note: The range should not be longer than 31 days.
このAPIに限らず、FitbitAPIは、HTTPヘッダにAccept-Languageを設定することで単位系を設定する。成功すると以下の配列を取得できる。
date | 計測日時?取得日時? |
---|---|
fat | 計測値、Accept-Languageにより単位を設定する |
logid | ユーザ内でユニークなID、グローバルではユニークでない |
time | 計測時刻?取得時刻? |
source | 計測装置、”Aria”,”Withthing”など |
時刻まで記録されることから、1日に数回計測した場合にはそれぞれ記録される。
実行例
PHPによりOAuth2のAuthenticate grant flowをパスしてAPIを叩く散布については過去エントリを参照のこと。なお、Wifi体組成計は Withthings製である。
1 |
/1/user/-/body/fat/date/2016-06-13.json |
この日は2度計測しているのだが…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Array ( [fat] => Array ( [0] => Array ( [date] => 2016-06-14 [fat] => 15.9 [logId] => 1465948799000 [source] => Withings [time] => 23:59:59 ) ) ) |
1個しか得られなかった。また、時刻がテキトウな値になっている。
純正のAriaなら、ちゃんと2個入って正しい時刻が入るのかもしれない。