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
要求網址
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:"
}
]
}
CURL 指令
$ 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
要求網址
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"
}
]
}
]
}
CURL 指令
$ 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