Ale*_*exR 5 api rest google-fit-sdk google-fit
我正在努力将Fit REST API返回的“活动时间”与现实相匹配。
举个例子 - 12 月 14 日,我散步了两次,每次大约 45 分钟。api 返回其中之一作为类型7
(“步行” - 正确!),另一个作为类型0
(在车辆中 - 错误!)。然而,Fit 应用程序将两者都显示为“步行”,因此它显然使用了不同的数据源。
我检查了其他几天,在这些天,带有类型的会话0
确实是有效的“车内”会话。
我尝试了所有返回 com.google.activity.segment 的聚合数据源。其中大多数都是空的,我只在merge_activity_segments
和中找到了数据platform_activity_segments
(它们似乎是相同的)。
谷歌的文档对数据同步延迟有一个警告,但他们从未具体说明延迟有多长。我正在查看的数据大约是 24 小时前的数据 - 如果它们的同步速度那么慢,那么这个 API 或多或少无法使用。
我正在使用以下 POST 到https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate
{
"aggregateBy": [
{
"dataSourceId": "derived:com.google.activity.segment:com.google.android.gms:merge_activity_segments"
}
],
"endTimeMillis": "1481788800000",
"startTimeMillis": "1481702400000",
"bucketByTime": {
"period": {
"timeZoneId": "America/Los_Angeles",
"type": "day",
"value": 1
}
}
}
Run Code Online (Sandbox Code Playgroud)
供参考 - 活动类型:https ://developers.google.com/fit/rest/v1/reference/activity-types
有没有人能够从 Fit 的 REST API 检索正确的活动时间?有什么建议么?
顺便说一句,步数和卡路里似乎工作正常 - 只需聚合以下数据集:derived:com.google.calories.expended:com.google.android.gms:merge_calories_expended
和derived:com.google.step_count.delta:com.google.android.gms:estimated_steps
旁注——这可能是我见过的大公司中记录最差的 API。
小智 0
我知道已经有一段时间了,但也许其他人稍后也会找到这个主题。文档本身看起来没有太大变化,但我发现了以下内容可以工作。
{
"aggregateBy": [{
"dataTypeName": "com.google.active_minutes",
"dataSourceId": "derived:com.google.active_minutes:com.google.android.gms:merge_active_minutes"
}],
"bucketByTime": { "durationMillis": 86400000 },
"startTimeMillis": 1678406400000,
"endTimeMillis":1678579200000
}
Run Code Online (Sandbox Code Playgroud)
https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate
类型:邮政
因此,您基本上要做的就是首先将此 URL:https://www.googleapis.com/fitness/v1/users/me/dataSources
作为 GET 请求调用,然后获取可能的数据源列表。从那里复制dataTypeName的名称和dataSourceId的dataStreamId。就这样,一旦您获得了想要获取的给定数据参数,您只需交换给定值并调用第一个 POST 端点即可。当然,不要忘记选择数据范围。
归档时间: |
|
查看次数: |
1612 次 |
最近记录: |