概要
- fitbitのサーバー上に保存されたデータをローカルに保存するやつ
- 言語はPython,2.7.10で動作の確認した
- 各種環境を整えることに関しては,以下記事を参考にしてほしい
- http://qiita.com/fujit33/items/2af7c4afdb4e07601def
コード
- 概要のURLを参考に「USER_ID」「CLIENT_SECRET」「ACCESS_TOKEN」「REFRESH_TOKEN」をメモしておき,それぞれ「各自」の文字に置き換える
# -*- coding: utf-8 -*-
import sys
import os
import fitbit
import gather_keys_oauth2 as Oauth2
# コマンドライン引数の数で分岐(2以外なら終了)
if not len(sys.argv) == 2: sys.exit(1)
# 変数の宣言及び日付,データの頻度,ディレクトリ,ファイル名の生成
DATE = sys.argv[1]
FREQS = ['1sec','1min','15min']
DIRS={}
FILES={}
for FREQ in FREQS:
DIRS[FREQ] = './%s' % FREQ
FILES[FREQ] = 'HR_%s_%s.csv' % ( DATE, FREQ )
# ディレクトリが存在しない場合,ディレクトリ作成
for FREQ in FREQS:
if not os.path.exists(DIRS[FREQ]):os.mkdir(FREQ)
# 固有情報,認証サーバーに接続及び認証処理
USER_ID = '各自'
CLIENT_SECRET = '各自'
ACCESS_TOKEN = '各自'
REFRESH_TOKEN = '各自'
auth2_client = fitbit.Fitbit(USER_ID, CLIENT_SECRET, oauth2=True, access_token=ACCESS_TOKEN, refresh_token=REFRESH_TOKEN)
# データの取得
fitbit_stats = {}
stats = {}
for FREQ in FREQS:
fitbit_stats[FREQ] = auth2_client.intraday_time_series('activities/heart', DATE, detail_level=FREQ)
stats[FREQ] = fitbit_stats[FREQ]['activities-heart-intraday']['dataset']
# CSVファイルの生成及びファイルの保存
for FREQ in FREQS:
os.chdir(DIRS[FREQ]) # 各ディレクトリに移動
csv_file = open(FILES[FREQ],'w')
for var in range(0, len(stats[FREQ])):
csv_file.write(stats[FREQ][var]['time'])
csv_file.write(",")
csv_file.write(str(stats[FREQ][var]['value']))
csv_file.write("\n")
csv_file.close()
os.chdir('..') # 一つ上のディレクトリに移動
解説
- あとで編集予定です
結果
- FitbitのAPI内の「fitbit」,「gather_keys_oauth2.py」,「gather_keys_oauth2.pyc」をソースコードと同じディレクトリにコピー
- python ファイル名.py 2017-02-01 で実行
- 実行ディレクトリに「1sec」「1min」「15min」という名前のディレクトリが作成され,各ディレクトリに,指定した日付のデータがそれぞれ保存される
参考
- 心拍を取得するコードは以下のページを参考にしました.
- http://shima-nigoro.hatenablog.jp/entry/2016/05/29/181309
初投稿です.助言や補足などがあれば指摘をお願いします.