使用Python检索Fitbit心率数据

时间:2015-09-17 05:41:17

标签: python fitbit

我一直在使用Fitbit Python package来分析我的数据。当我查看我的运动数据时,它似乎运作得很好:

fitbit_stats = authd_client._COLLECTION_RESOURCE('activities', date='2015-09-16')

但是,当我尝试获取心率数据时,它会运行,但不会返回除0以外的任何内容:

fitbit_stats = authd_client._COLLECTION_RESOURCE('heart', date='2015-09-16')
print fitbit_stats
  

{'heart':[],'average':[{'tracker':'Resting Heart Rate',   'heartRate':0},{'tracker':'正常心率','heartRate':0},   {'tracker':'Exertive Heart Rate','heartRate':0}]}

有谁知道我为什么不在这里返回任何数据?

1 个答案:

答案 0 :(得分:5)

以下内容可行,但我不确定这是您要找的内容

fitbit_stats = authd_client._COLLECTION_RESOURCE('activities/heart', date='2016-08-11')
print fitbit_stats

我猜你想要日内约会(像我一样)

根据https://dev.fitbit.com/docs/heart-rate/#get-heart-rate-intraday-time-series

  

访问日内时间序列供个人使用(访问您的   自己的数据)可通过“个人”应用程序类型获得。

     

目前正在访问所有其他用途的当日时间序列   根据具体情况授予。 ...

我在fitbit api包中添加了一个自定义函数:

def get_heartrate_intraday(self, date="today", end_date="1d", detail_level="1sec", user_id=None):
    uri = "{0}/{1}/user/-/activities/heart/date/{date}/{end_date}/{detail_level}.json"

    date = self._get_date_string(date)
    end_date = self._get_date_string(end_date)

    url = uri.format(
        *self._get_common_args(user_id=user_id),
        date=date,
        end_date=end_date,
        detail_level=detail_level
    )
    return self.make_request(url)

这将返回的数据如下:

'activities-heart-intraday': {
    'dataset': [
        {'time': '00:00:00', 'value': 66},
        {'time': '00:00:10', 'value': 67},
        {'time': '00:00:25', 'value': 67},
        {'time': '00:00:40', 'value': 67},

        {'time': '23:57:40', 'value': 84},
        {'time': '23:58:40', 'value': 85},
        {'time': '23:58:50', 'value': 80}
    ],
    'datasetInterval': 1,
    'datasetType': 'second'
}