Tambahkan Data Nutrisi

Anda dapat menambahkan data nutrisi ke Google Fit dengan membuat sumber data dan menggunakan jenis data com.google.nutrition. Setiap titik data mewakili nilai semua gizi yang dikonsumsi dalam makanan atau camilan. Contoh ini menunjukkan cara menambahkan data nutrisi untuk seseorang yang makan pisang.

Membuat sumber data

Android

Gunakan DataSource.Builder untuk membuat sumber data baru. Misalnya, nutritionSource.

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

REST

Panggil REST API untuk membuat sumber data baru. Misalnya, NutritionSource.

Metode HTTP

POST

URL Permintaan

https://www.googleapis.com/fitness/v1/users/me/dataSources

Isi permintaan

{
  "dataStreamName": "NutritionSource",
  "type": "raw",
  "application": {
    "detailsUrl": "http://example.com",
    "name": "My Example App",
    "version": "1"
  },
  "dataType": {
    "name": "com.google.nutrition",
   }
}

Respons

Jika sumber data berhasil dibuat, Anda akan mendapatkan kode status respons HTTP 200 OK. Isi respons memuat representasi JSON sumber data, termasuk properti datasource.dataStreamId. Gunakan ID ini sebagai dataSourceId untuk menambahkan data.

Perintah 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

Menambahkan data nutrisi

Android

Contoh ini menunjukkan cara membuat titik data baru, dan menambahkan data nutrisi untuk pisang, menggunakan sumber data 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

Contoh ini menunjukkan cara menambahkan sekumpulan data nutrisi menggunakan sumber data NutritionSource. Nilai untuk jenis data gizi adalah nutrisi (peta), jenis makanan (4 = 'camilan'), dan item makanan sebenarnya (string).

Metode HTTP

PATCH

URL Permintaan

  https://www.googleapis.com/fitness/v1/users/me/dataSources/datasource.dataStreamId/datasets/1574159699023000000-1574159699023999000
 

Isi permintaan

    {
      "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"
            }
          ]
        }
      ]
    }

Respons

Jika titik data berhasil dibuat, Anda akan mendapatkan kode status respons HTTP 200 OK. Isi respons memuat representasi JSON dari set data.

Perintah 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