import
sys
import
fitbit
import
pandas as pd
import
gather_keys_oauth2 as Oauth2
from
datetime
import
datetime, date, timedelta
print
(
'Hello FitbitSleepAPP1'
)
USER_ID
=
"hoge"
CLIENT_SECRET
=
"hoge"
def
requestFitbit(DATE):
rval
=
""
global
auth2_client
sleep_data
=
auth2_client.sleep(date
=
DATE)
OUTPUT_FILE
=
"SLEEP.csv"
csv_file
=
open
(OUTPUT_FILE,
'a'
)
csv_file.write(DATE
+
","
)
sleepcnt
=
len
(sleep_data[
"sleep"
])
totallength
=
0
;
TAfter
=
0
;
TFall
=
0
;
TAwake
=
0
;
TLessCnt
=
0
;
TLessDur
=
0
;
TEffi
=
0
;
for
var
in
range
(
0
, sleepcnt):
totallength
+
=
sleep_data[
"sleep"
][var][
"minutesAsleep"
]
TAfter
+
=
sleep_data[
"sleep"
][var][
"minutesAfterWakeup"
]
TFall
+
=
sleep_data[
"sleep"
][var][
"minutesToFallAsleep"
]
TAwake
+
=
sleep_data[
"sleep"
][var][
"minutesAwake"
]
TLessCnt
+
=
sleep_data[
"sleep"
][var][
"restlessCount"
]
TLessDur
+
=
sleep_data[
"sleep"
][var][
"restlessDuration"
]
TEffi
+
=
sleep_data[
"sleep"
][var][
"efficiency"
]
AvgEffi
=
1
if
sleepcnt!
=
0
:
AvgEffi
=
TEffi
/
sleepcnt;
print
(
str
(sleepcnt)
+
"回の睡眠で総睡眠時間は"
+
str
(totallength)
+
"分です"
)
csv_file.write(
str
(totallength)
+
","
+
str
(sleepcnt)
+
","
+
str
(TAfter)
+
","
+
str
(TFall)
+
","
+
str
(TAwake)
+
","
+
str
(TLessCnt)
+
","
+
str
(TLessDur)
+
","
+
str
(AvgEffi)
+
","
)
for
var
in
range
(
0
, sleepcnt):
if
sleep_data[
"sleep"
][var][
"isMainSleep"
]
=
=
True
:
csv_file.write(sleep_data[
"sleep"
][var][
"startTime"
]
+
","
+
str
(sleep_data[
"sleep"
][var][
"minutesAsleep"
])
+
","
+
str
(sleep_data[
"sleep"
][var][
"efficiency"
]))
csv_file.write(
"\n"
)
csv_file.close()
return
rval
def
writeindex():
OUTPUT_FILE
=
"SLEEP.csv"
csv_file
=
open
(OUTPUT_FILE,
'a'
)
csv_file.write(
"date,totallength,count,AfterWakeup,FallAsleep,Awake,restlessCount,restlessDur,AvgEffic,MainStart,MainLen,MainEffic\n"
)
csv_file.close()
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'
])
print
(ACCESS_TOKEN)
print
(REFRESH_TOKEN)
auth2_client
=
fitbit.Fitbit(USER_ID, CLIENT_SECRET, oauth2
=
True
, access_token
=
ACCESS_TOKEN, refresh_token
=
REFRESH_TOKEN)
writeindex();
today
=
datetime.today()
for
var
in
range
(
0
,
4
):
stamp
=
datetime.strftime(today
-
timedelta(days
=
var),
'%Y-%m-%d'
)
print
(
"target: "
+
stamp, end
=
' '
)
requestFitbit(stamp)