4

我一直在使用Fitbit Python 包来分析我的数据。当我查看我的锻炼数据时,它似乎工作得非常好:

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': '静息心率', 'heartRate': 0}, {'tracker': '正常心率', 'heartRate': 0}, { 'tracker': '运动心率', 'heartRate': 0}]}

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

4

1 回答 1

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'
}
于 2016-08-12T09:40:46.047 回答