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 nutrisi 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 Anda berhasil dibuat, Anda akan mendapatkan kode status respons HTTP 200 OK. 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 data gizi 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 nutrisi adalah
nutrisi (peta), jenis makanan (4 = 'snack'), 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 Anda berhasil dibuat, Anda akan mendapatkan kode status respons HTTP 200 OK. Isi respons berisi 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