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

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

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

Android

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

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

REST

קוראים ל-API ל-REST כדי ליצור מקור נתונים חדש. לדוגמה, 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",
   }
}

תגובה

אם מקור הנתונים נוצר בהצלחה, תקבלו קוד HTTP מסוג 200 OK קוד הסטטוס של התשובה. גוף התשובה מכיל ייצוג 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 = 'חטיף') ופריט האוכל עצמו (מחרוזת).

שיטת 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"
            }
          ]
        }
      ]
    }

תגובה

אם הנקודה על הגרף נוצרה בהצלחה, תקבלו קוד HTTP 200 OK. קוד הסטטוס של התשובה. גוף התשובה מכיל ייצוג 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