Python使ってFitbitのアクティビティデータ(安静時心拍、歩数、消費カロリー)を取得する
Fitbitのアクティビティデータを取得し、クラウド上のデータベースなり、CSV出力して、NoSQL DBにCSVごと投げるなり処理するコードについて、とりあえず動きましたので、忘れないようにメモしました。特に安静時心拍や歩数、消費カロリーは、日本語で情報がほぼ無いので苦労しました。
Python 2.x と Fitbit API接続のため、python-fitbit を使用しています。 前日のデータを取得するために、Fitbitへの接続と下記の変数を定義します。
アクティビティ変数 | 安静時心拍 | 歩数 | 消費カロリー |
---|---|---|---|
変数名 | resthr | act | cal |
ポイント部分
DATE = datetime.date.today() DATE = (DATE - datetime.timedelta(days=1)) client = fitbit.Fitbit(CLIENT_ID, CLIENT_SECRET, ACCESS_TOKEN, REFRESH_TOKEN , refresh_cb = updateToken) #Get resting HeartRate fitbit_resthr = client.time_series('activities/heart', base_date=DATE, period='1d') resthr = fitbit_resthr['activities-heart'] #Get Activity Steps fitbit_act = client.time_series('activities/steps', base_date=DATE, period='1d') act = fitbit_act['activities-steps'] #Get Activity Calories fitbit_cal = client.time_series('activities/calories', base_date=DATE, period='1d') cal = fitbit_cal['activities-calories']
上記は、Fitbit APIの、「Activity Time Series」と「Heart Rate Time Series」を使用しており、base_dateがターゲットの日付(ここでは前日で、period で日付範囲を指定します。ここでは、period を1d=1日としています。データの仕様は下記の公式ドキュメントを確認してください。
出力する処理です。
#Activity-resting-HeartRate for varrest in reversed ( range( 0, len(resthr) ) ): print ( str( resthr[varrest]['value']['restingHeartRate'] ) ) #Activity-Steps for vars in reversed ( range( 0, len(act) ) ): print ( str( act[vars]['value'] ) ) #Activity-Calories for varc in reversed ( range( 0, len(cal) ) ): print ( str( cal[varc]['value'] ) )
わかってみると単純でした。