Tambahkan Data Nutrisi

Anda dapat menambahkan data gizi ke Google Fit dengan membuat sumber data dan menggunakan jenis data com.google.nutrition. Setiap titik data mewakili nilai dari semua gizi yang dikonsumsi dalam makanan atau camilan. Contoh ini menunjukkan cara menambahkan data gizi 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 HTTP 200 OK kode status respons Anda. Isi respons berisi representasi JSON dari 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 nutrisi data 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 satu set data nutrisi menggunakan Sumber data NutritionSource. Nilai untuk jenis data nutrisi adalah gizi (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 HTTP 200 OK kode status respons Anda. Isi respons berisi representasi JSON dari dari {i>dataset <i}tersebut.

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