FitbitAPI
せっかくFitbitを持っているしAPI使ってなんかしたいなって思ったのでとりあえず導入
手順
1. Fitbitのページへアクセス
日本語ページがあるけど現状手順2からは英語ページに遷移する
2. 右上のアプリを登録をクリック
ログインする用に言われたら自分のアカウント情報を入力してログイン
3. 必要事項を記入する
注意すべき点は、
- OAuth2.0 Application Typeを
Personal
にする - Callback URLを
http://127.0.0.1:8080/
にする
の二点
それ以外の項目は適当に埋めればOK
4. 必要な情報を控える
- 登録後に表示されるOAuth 2.0 Client ID、Client Secretを控えておく
- direnv(参考)などを用いて管理すると便利
5. Access TokenとRefresh Tokenの取得
-
python-fitbitを、以下のようににクローン
$ git clone https://github.com/orcasgit/python-fitbit.git
-
4.で控えたClient IDとClient Secretを用いて以下を実行
$ cd /path/to/python-fitbit $ ./gather_keys_oauth2.py 'your Client ID' 'your Client Secret'
ブラウザが開くのでチェックボックスに必要な分だけチェックを入れて許可
コマンドラインに戻ると
access_token
とrefresh_token
が表示されているので控える
※「接続しようとしているアプリは Fitbit に有効なデータを提供しませんでした。この問題を報告してください。」と表示される場合
- MANAGE MY APPSから利用したいアプリケーションを選択(OAuth 2.0 Client IDなどが表示されているページ)
-
Edit Application Settings
を選択してCallback URLがhttp://127.0.0.1:8080/
になっているか確認 - Callback URLを変更したい場合はココとかを参考に
python-fitbit/gather_keys_oauth2.py
ファイルを変更する必要あり
6. Pythonプログラムを書く
- 5までで取得した情報を利用してFitbitAPIを利用する
- 以下のようなプログラムを書けば歩数を取得することができる
import fitbit
class FitbitApp(object):
CLIENT_ID = 'your Client ID'
CLIENT_SECRET = 'your Client Secret'
ACCESS_TOKEN = 'your access token'
REFRESH_TOKEN = 'your refresh token'
def __init__(self):
self.fitbit_client = fitbit.Fitbit(self.CLIENT_ID, self.CLIENT_SECRET,
access_token=self.ACCESS_TOKEN, refresh_token=self.REFRESH_TOKEN)
def get_steps(self, base_date, detail_level, start_time, end_time):
steps_data = fitbit_client.intraday_time_series('activities/steps', base_date=base_date,
detail_level=detail_lebel, start_time=start_time, end_time=end_time)
steps_dic_list = steps_date['activities-steps-intraday']['dateset']
return steps_dic_list
if __name__ == '__main__':
fitbit_app = FitbitApp()
base_date = '2018-03-28'
detail_level = '15min'
start_time = '10:00'
end_time = '15:00'
steps_dic_list = fitbit_app.get_steps(base_date, detail_level, start_time, end_time)
- 他にどんなデータが取れるかはココとかを参考に