1週間ぶんのHRを取得する
計測したデータはすべてクラウド上に上がっているので、1週間ぶんのデータを取得することも可能です。おおまかな手順は下記の動画をご覧ください。
下記スクリプトは、指定した日付から遡って3日ぶんのHRを取得するスクリプトです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | #getWeekHR.py import sys import fitbit import gather_keys_oauth2 as Oauth2 from datetime import datetime, date, timedelta print ( 'Hello FitbitAPP4' ) USER_ID = " "; CLIENT_SECRET = " " def requestFitbit(DATE): rval = "" global auth2_client,USER_ID fitbit_stats = auth2_client.intraday_time_series( 'activities/heart' , DATE, detail_level = '1min' ) HRstats = fitbit_stats[ 'activities-heart-intraday' ][ 'dataset' ] OUTPUT_FILE = USER_ID + "_HR.csv" csv_file = open (OUTPUT_FILE, 'a' ) csv_file.write(DATE + "," ) for num1 in range ( 24 ): for num2 in range ( 60 ): key = '{:02}' . format (num1) + ':{:02}' . format (num2) + ':00' hr = "" for var in range ( 0 , len (HRstats)): if str (HRstats[var][ 'time' ]) = = key: hr = str (HRstats[var][ 'value' ]) break csv_file.write(hr) csv_file.write( "," ) csv_file.write( "\n" ) csv_file.close() return rval ################################################## def writeindex(): global USER_ID OUTPUT_FILE = USER_ID + "_HR.csv" csv_file = open (OUTPUT_FILE, 'a' ) csv_file.write( "," ) for num1 in range ( 24 ): for num2 in range ( 60 ): key = '{:02}' . format (num1) + ':{:02}' . format (num2) + ':00' csv_file.write(key) csv_file.write( "," ) csv_file.write( "\n" ) csv_file.close() ################################################## """Get tokens""" server = Oauth2.OAuth2Server(USER_ID, CLIENT_SECRET) server.browser_authorize() ACCESS_TOKEN = str (server.fitbit.client.session.token[ 'access_token' ]) REFRESH_TOKEN = str (server.fitbit.client.session.token[ 'refresh_token' ]) """Authorization""" auth2_client = fitbit.Fitbit(USER_ID, CLIENT_SECRET, oauth2 = True , access_token = ACCESS_TOKEN, refresh_token = REFRESH_TOKEN) """request""" writeindex() today = date( 2023 , 6 , 26 ) for var in range ( 0 , 3 ): stamp = datetime.strftime(today - timedelta(days = var), '%Y-%m-%d' ) print ( "target: " + stamp) requestFitbit(stamp) |
無事に実行されると、「ID_HR.csv」のようなファイル名のデータが作成されます。エクセルで開くと、下記のような構造になっています。60(分)✕24(時間)=1440個のデータが3日ぶん格納されていることがわかります。
無事に実行されると、「ID_HR.csv」のようなファイル名のデータが作成されます。エクセルで開くと、下記のような構造になっています。60(分)✕24(時間)=1440個のデータが3日ぶん格納されていることがわかります。
無事に実行されると、「ID_HR.csv」のようなファイル名のデータが作成されます。エクセルで開くと、下記のような構造になっています。60(分)✕24(時間)=1440個のデータが3日ぶん格納されていることがわかります。

