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 gizi yang dikonsumsi dalam makanan atau camilan. Contoh ini menunjukkan cara menambahkan
data nutrisi 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 kode status respons HTTP 200 OK
. Isi respons memuat representasi JSON
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
nutrisi 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 gizi adalah nutrisi (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 kode status respons HTTP 200 OK
. Isi respons memuat 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