Android
您的应用可以通过创建数据读取请求并查询 DataType.TYPE_NUTRITION 来获取在指定时间范围内食用的食物列表,如以下示例所示:
val readRequest = DataReadRequest.Builder()
.read(DataType.TYPE_NUTRITION)
.setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
.build()
如需详细了解如何读取数据,请参阅使用健身记录。
REST
通过 REST API 检索食用的食物列表是一个三阶段的过程:
- 检索可用于
com.google.nutrition数据类型的数据源列表。或者,如果已知数据源详细信息,则可以直接在下一步中使用这些信息。 - 依次从每个数据源获取食用的食物列表。
- (如果存在多个数据源)在客户端应用中合并食物列表。
检索食物数据源列表
由于每个 数据源只需要 datasource.dataStreamId,因此可以使用字段掩码(如此处所示)将响应限制为仅此属性。
HTTP 方法
GET
Request 网址
https://www.googleapis.com/fitness/v1/users/me/dataSources?dataTypeName=com.google.nutrition&fields=dataSource(dataStreamId)答案
如果成功,响应将是 200 OK 状态代码。响应正文包含一个 JSON 列表,列表中的每个项对应一个数据源。
例如:
{
"dataSource": [
{
"dataStreamId": "raw:com.google.nutrition:com.example.nutritionSource1:"
},
{
"dataStreamId": "raw:com.google.nutrition:com.example.nutritionSource2:"
}
]
}
C网址 命令
$ curl \
'https://www.googleapis.com/fitness/v1/users/me/dataSources?dataTypeName=com.google.nutrition&fields=dataSource(dataStreamId)' \
--header 'Authorization: Bearer ya29.yourtokenvalue' \
--header 'Accept: application/json' \
--compressed从数据源获取食用的食物列表
依次使用第 1 步中每个来源的 dataSource.dataStreamId 来检索食用的食物列表。
datasetId 是所需时间段的开始和结束时间,以纳秒为单位
,如 数据集资源 中所定义。
例如,1546300800000000000-1546387200000000000 表示 2019 年 1 月 1 日 00:00:00 UTC 到 2019 年 1 月 2 日 00:00:00 的 datasetId。
HTTP 方法
GET
Request 网址
https://www.googleapis.com/fitness/v1/users/me/dataSources/dataSource.dataStreamId/datasets/1546300800000000000-1546387200000000000?fields=point%2Fvalue%2FstringVal
答案
{
"point": [
{
"value": [
{},
{},
{
"stringVal": "apple"
}
]
},
{
"value": [
{},
{},
{
"stringVal": "banana"
}
]
},
{
"value": [
{},
{},
{
"stringVal": "carrot"
}
]
}
]
}
C网址 命令
$ curl \
'https://www.googleapis.com/fitness/v1/users/me/dataSources/dataSource.dataStreamId/datasets/157059699023000000-1575159699023999000?fields=point%2Fvalue%2FstringVal' \
--header 'Authorization: Bearer ya29.yourtokenvalue' \
--header 'Accept: application/json' \
--compressed