Fitbit

FitbitAPI 体脂肪率を取得する

更新日:

Fitbitは WiFi体組成計と連携して体重、体脂肪率を記録することができる。Fitbit自体が製造販売しているWiFi体組成計「Fitbit Aria」との連携が一番自然だが、Fitbit以外が製造販売しているメジャーなWiFi体組成計とも連携できる。内部的に体組成計を識別する文字列を一緒に記録している。

運動するきっかけとして「減量のため」というのはかなり上位に来るだろうから、もう少し扱いの重要度を上げても良さそうなのだが、オプション的な扱いである。「Aria」で計測したデータであってもサードパーティ製体重計で計測したデータであっても、機能上は同じように扱われる。

API概要

以下に体脂肪率を取得するRESTfulAPIを示す。RESTfulAPI は3パターン用意されている。なお、別のエントリで紹介するAPIにより、体重、体脂肪率、BMIを一度に取得できる。

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/user/-/body/fat/date/2016-06-13.json

この日は2度計測しているのだが...

Array
(
    [fat] => Array
        (
            [0] => Array
                (
                    [date] => 2016-06-14
                    [fat] => 15.9
                    [logId] => 1465948799000
                    [source] => Withings
                    [time] => 23:59:59
                )

        )

)

1個しか得られなかった。また、時刻がテキトウな値になっている。
純正のAriaなら、ちゃんと2個入って正しい時刻が入るのかもしれない。

-Fitbit

Copyright© ikuty.com , 2018 AllRights Reserved Powered by AFFINGER4.