Anda dapat menambahkan data gizi ke Google Fit dengan membuat sumber data dan menggunakan
jenis data com.google.nutrition
. Setiap titik data mewakili nilai
dari semua gizi 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 berhasil dibuat, Anda akan mendapatkan HTTP 200 OK
kode status respons Anda. 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 nutrisi
data 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 satu set data nutrisi menggunakan
Sumber data NutritionSource
. Nilai untuk jenis data nutrisi adalah
gizi (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 HTTP 200 OK
kode status respons Anda. Isi respons berisi representasi JSON dari
dari {i>dataset <i}tersebut.
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