Bạn có thể thêm dữ liệu dinh dưỡng vào Google Fit bằng cách tạo một nguồn dữ liệu và sử dụng loại dữ liệu com.google.nutrition. Mỗi điểm dữ liệu biểu thị giá trị của tất cả các chất dinh dưỡng được tiêu thụ trong một bữa ăn hoặc bữa ăn nhẹ. Ví dụ này cho bạn thấy cách thêm dữ liệu dinh dưỡng cho một người đã ăn chuối.
Tạo nguồn dữ liệu
Android
Sử dụng DataSource.Builder để tạo một nguồn dữ liệu mới. Ví dụ: nutritionSource.
val nutritionSource = DataSource.Builder()
.setDataType(DataType.TYPE_NUTRITION)
// ...
.build()
REST
Gọi API REST để tạo một nguồn dữ liệu mới. Ví dụ: NutritionSource.
Phương thức HTTP
POST
URL yêu cầu
https://www.googleapis.com/fitness/v1/users/me/dataSources
Nội dung yêu cầu
{
"dataStreamName": "NutritionSource",
"type": "raw",
"application": {
"detailsUrl": "http://example.com",
"name": "My Example App",
"version": "1"
},
"dataType": {
"name": "com.google.nutrition",
}
}
Đáp
Nếu tạo thành công nguồn dữ liệu, bạn sẽ nhận được mã trạng thái phản hồi HTTP 200 OK. Phần nội dung phản hồi chứa một biểu thị JSON của nguồn dữ liệu, bao gồm cả thuộc tính datasource.dataStreamId. Sử dụng mã nhận dạng này làm dataSourceId để thêm dữ liệu.
Lệnh CURL
$ curl --header "Authorization: Bearer ya29.yourtokenvalue --request POST \ --header "Content-Type: application/json;encoding=utf-8" --data @nutrition-ds.json \ https://www.googleapis.com/fitness/v1/users/me/dataSources
Thêm dữ liệu dinh dưỡng
Android
Ví dụ này cho thấy cách tạo một điểm dữ liệu mới và thêm dữ liệu dinh dưỡng cho một quả chuối bằng nguồn dữ liệu nutritionSource.
val nutrients = mapOf(
Field.NUTRIENT_TOTAL_FAT to 0.4f,
Field.NUTRIENT_SODIUM to 1f,
Field.NUTRIENT_SATURATED_FAT to 0.1f,
Field.NUTRIENT_PROTEIN to 1.3f,
Field.NUTRIENT_TOTAL_CARBS to 27.0f,
Field.NUTRIENT_CHOLESTEROL to 0.0f,
Field.NUTRIENT_CALORIES to 105.0f,
Field.NUTRIENT_SUGAR to 14.0f,
Field.NUTRIENT_DIETARY_FIBER to 3.1f,
Field.NUTRIENT_POTASSIUM to 422f
)
val banana = DataPoint.builder(nutritionSource)
.setTimestamp(timestamp, TimeUnit.MILLISECONDS)
.setField(Field.FIELD_FOOD_ITEM, "banana")
.setField(Field.FIELD_MEAL_TYPE, Field.MEAL_TYPE_SNACK)
.setField(Field.FIELD_NUTRIENTS, nutrients)
.build()
REST
Ví dụ này cho thấy cách thêm một bộ dữ liệu dinh dưỡng bằng nguồn dữ liệu NutritionSource. Các giá trị cho loại dữ liệu dinh dưỡng là chất dinh dưỡng (một bản đồ), loại bữa ăn (4 = "snack") và mặt hàng thực phẩm thực tế (một chuỗi).
Phương thức HTTP
PATCH
URL yêu cầu
https://www.googleapis.com/fitness/v1/users/me/dataSources/datasource.dataStreamId/datasets/1574159699023000000-1574159699023999000
Nội dung yêu cầu
{
"minStartTimeNs": 1574159699023000000,
"maxEndTimeNs": 1574159699023999000,
"dataSourceId": "datasource.dataStreamId",
"point": [
{
"startTimeNanos": 1574159699023000000,
"endTimeNanos": 1574159699023999000,
"dataTypeName": "com.google.nutrition",
"value": [
{
"mapVal": [
{
"key": "fat.total",
"value": {
"fpVal": 0.4
}
},
{
"key": "sodium",
"value": {
"fpVal": 1.0
}
},
{
"key": "fat.saturated",
"value": {
"fpVal": 0.1
}
},
{
"key": "protein",
"value": {
"fpVal": 1.3
}
},
{
"key": "carbs.total",
"value": {
"fpVal": 27.0
}
},
{
"key": "cholesterol",
"value": {
"fpVal": 0.0
}
},
{
"key": "calories",
"value": {
"fpVal": 105.0
}
},
{
"key": "sugar",
"value": {
"fpVal": 14.0
}
},
{
"key": "dietary_fiber",
"value": {
"fpVal": 3.1
}
},
{
"key": "potassium",
"value": {
"fpVal": 422.0
}
}
]
},
{
"intVal": 4
},
{
"strVal": "banana"
}
]
}
]
}Đáp
Nếu tạo điểm dữ liệu thành công, bạn sẽ nhận được mã trạng thái phản hồi HTTP 200 OK. Phần nội dung phản hồi chứa một biểu thị JSON của tập dữ liệu.
Lệnh CURL
$ curl --header "Authorization: Bearer ya29.yourtokenvalue --request PATCH \ --header "Content-Type: application/json;encoding=utf-8" --data @nutrition-data.json \ https://www.googleapis.com/fitness/v1/users/me/dataSources/datasource.dataStreamId/datasets/1574159699023000000-1574159699023999000