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

כדי להוסיף נתוני תזונה ל-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