Use python-fitbit to interact with the Fitbit API and get sleep and intraday activity data. Store as json files in data/raw.
In [1]:
    
%load_ext pypath_magic
    
In [2]:
    
%pypath -a /Users/rbussman/Projects/sleep-bit
    
    
In [3]:
    
from src.data import get_fitbit
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
sns.set_context('poster')
import pandas as pd
import time
    
In [4]:
    
daterange = pd.date_range('2017-03-30', '2017-08-10')
    
Intraday steps
In [5]:
    
# fitbit limits API calls to 150 per hour
rate_limit = 140
api_calls = 0
for date in daterange:
    fitbit_data = get_fitbit.FitbitData(date, 'intraday')
    sleep_log = fitbit_data.download_from_fitbit()
    fitbit_data.write_to_disk(sleep_log)
    api_calls += 1
    if api_calls > rate_limit:
        print("We've exceeded the fitbit rate limit. Pausing for 1 hour.")
        time.sleep(3600)
        api_calls = 0
    
Sleep logs
In [5]:
    
# fitbit limits API calls to 150 per hour
rate_limit = 140
api_calls = 0
for date in daterange:
    fitbit_data = get_fitbit.FitbitData(date, 'sleep')
    sleep_log = fitbit_data.download_from_fitbit()
    fitbit_data.write_to_disk(sleep_log)
    api_calls += 1
    if api_calls > rate_limit:
        print("We've exceeded the fitbit rate limit. Pausing for 1 hour.")
        time.sleep(3600)
        api_calls = 0
    
In [ ]: