הוספה של נתוני תזונה

כדי להוסיף נתוני תזונה אל Google Fit, תוכלו ליצור מקור נתונים ולהשתמש בסוג הנתונים com.google.nutrition. כל נקודה על הגרף מייצגת את הערך של כל המרכיבים התזונתיים בארוחה או בחטיף. דוגמה זו מראה כיצד להוסיף נתוני תזונה עבור אדם שאכלת בננה.

יצירת מקור נתונים

Android

יש להשתמש ב-DataSource.Builder כדי ליצור מקור נתונים חדש. לדוגמה: nutritionSource.

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

REST

יש להתקשר ל-REST API כדי ליצור מקור נתונים חדש. לדוגמה: NutritionSource.

שיטת HTTP

POST

כתובת URL לבקשה

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

גוף הבקשה

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

תגובה

אם מקור הנתונים נוצר, תקבלו קוד סטטוס 200 OK עבור תגובת HTTP. גוף התגובה מכיל ייצוג JSON של מקור הנתונים, כולל נכס datasource.dataStreamId. השתמשו במזהה הזה בתור dataSourceId כדי להוסיף נתונים.

פקודת 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

הוספה של נתוני תזונה

Android

בדוגמה הזו מוסבר איך ליצור נקודת נתונים חדשה, ולהוסיף נתוני תזונה בננה, באמצעות מקור הנתונים 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

בדוגמה הזו מוסבר איך להוסיף קבוצה של נתוני תזונה באמצעות מקור הנתונים NutritionSource. הערכים של סוג נתוני התזונה הם מדדים (מפה), סוג הארוחה (4 = 'snack') ופריט המזון בפועל (מחרוזת).

שיטת HTTP

PATCH

כתובת URL לבקשה

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

גוף הבקשה

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

תגובה

אם נקודת הנתונים נוצרה בהצלחה, יוצג קוד סטטוס התגובה 200 OK מסוג HTTP. גוף התגובה מכיל ייצוג JSON של קבוצת הנתונים.

פקודת 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