Thêm dữ liệu dinh dưỡng

Bạn có thể thêm dữ liệu dinh dưỡng vào Google Fit bằng cách tạo nguồn dữ liệu và sử dụng loại dữ liệu com.google.nutrition. Mỗi điểm dữ liệu thể hiện 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 biết cách thêm dữ liệu dinh dưỡng cho ai đó đã ăn chuối.

Tạo nguồn dữ liệu

Android

Sử dụng DataSource.Builder để tạo nguồn dữ liệu mới. Ví dụ: nutritionSource.

val nutritionSource = DataSource.Builder()
    .setDataType(DataType.TYPE_NUTRITION)
    // ...
    .build()

Kiến trúc chuyển trạng thái đại diện (REST)

Gọi API REST để tạo 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 bản trình bày 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 hướng dẫn bạn 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 cách sử dụ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()

Kiến trúc chuyển trạng thái đại diện (REST)

Ví dụ này cho biết cách thêm một tập dữ liệu dinh dưỡng bằng cách sử dụng nguồn dữ liệu NutritionSource. Giá trị của loại dữ liệu dinh dưỡng là các chất dinh dưỡng (bản đồ), loại bữa ăn (4 = \39;snack\39;) 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 điểm dữ liệu của bạn đã được tạo 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 bản trình bày 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