2 回答
TA贡献1835条经验 获得超7个赞
看起来您可能试图为数据类型传递错误的字段:如果您想使用标准数据类型(如com.google.heart_minutes
),您应该传递标准数据类型的确切字段(字段应称为“强度”);或者只是传递数据类型名称,后端将为您填写它们。
因此,如果您将数据类型更改为
"dataType": {"name": "com.google.heart_minutes"}
它应该工作。
然后,您需要使用从该请求返回的数据源 ID 来获取数据点。
TA贡献1833条经验 获得超4个赞
太棒了,所以在评论中得到一些支持后,我有一些工作代码可以使用 3 个 API 调用添加一个包含来自先前定义的数据源的数据的新会话。第一个调用是创建数据源,只需要运行一次。然后第二个和第三个将数据点添加到数据集中并分别为锻炼创建一个新会话。这是最终的工作代码:
数据源:
/*
gapi.client.fitness.users.dataSources.create({
"userId":"me",
"resource": {
"application": {
"name": "LittleWorkouts"
},
"dataType": {
"name": "com.google.heart_minutes"
},
"device": {
"manufacturer": "op",
"model": "6",
"type": "phone",
"uid": "1000020",
"version": "1"
},
"type": "raw"
}
})
.then(function(response) {
// Handle the results here (response.result has the parsed body).
console.log("Response", response);
},
function(err) { console.error("Execute error 1", err); });
*/
数据和数据集:
gapi.client.fitness.users.dataSources.datasets.patch({
"dataSourceId":"raw:com.google.heart_minutes:108881196053:op:6:1000020",
"userId": "me",
"datasetId": z,
"resource": {
"minStartTimeNs": workoutStartTime * 1000000,
"maxEndTimeNs": workoutEndTime * 1000000,
"dataSourceId": "raw:com.google.heart_minutes:108881196053:op:6:1000020",
"point": [
{
"originDataSourceId": "raw:com.google.heart_minutes:108881196053:op:6:1000020",
"value": [
{
"fpVal": 8
}
],
"dataTypeName": "com.google.heart_minutes",
"endTimeNanos": workoutEndTime * 1000000,
"startTimeNanos": workoutStartTime * 1000000,
}
]
}
})
.then(function(response) {
// Handle the results here (response.result has the parsed body).
console.log("Response", response);
},
function(err) { console.error("Execute error 2", err); });
会议:
gapi.client.fitness.users.sessions.update({
"userId":"me",
"sessionId": id,
"id": id,
"name": "Morning Workout",
"description": "A very intense workout",
"startTimeMillis": workoutStartTime,
"endTimeMillis": workoutEndTime,
"version": 1,
"lastModifiedToken": "exampleToken",
"application": {
"detailsUrl": "http://example.com",
"name": "LittleWorkouts",
"version": "1.0"
},
"activityType": 21,
"activeTimeMillis": workoutEndTime - workoutStartTime
}).then((res) => {console.log(res)});
console.log('res')
添加回答
举报