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 đại diện cho giá trị tất cả chất dinh dưỡng mà trẻ tiêu thụ trong một bữa ăn chính hoặc bữa ăn nhẹ. Ví dụ này minh hoạ cách thêm dữ liệu dinh dưỡng của người ăn một quả 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)

Hãy 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 nguồn dữ liệu thành công, bạn sẽ nhận được một HTTP 200 OK mã trạng thái phản hồi. 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ả tài sản datasource.dataStreamId. Sử dụng mã này dưới dạng 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 minh hoạ cách tạo một điểm dữ liệu mới và bổ sung thông tin dinh dưỡng dữ liệu về 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 bạn biết cách thêm một bộ dữ liệu dinh dưỡng bằng cách sử dụng NutritionSource nguồn dữ liệu. Các giá trị cho loại dữ liệu dinh dưỡng là chất dinh dưỡng (bản đồ), loại bữa ăn (4 = 'bữa ăn nhẹ') và món ăn trong 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 tạo thành công, bạn sẽ nhận được một HTTP 200 OK mã trạng thái phản hồi. 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