Veri kaynağı oluşturarak ve com.google.nutrition
veri türünü kullanarak Google Fit'e beslenme verileri ekleyebilirsiniz. Her veri noktası, bir öğünde veya atıştırmalıkta tüketilen tüm besin değerlerinin değerini temsil eder. Bu örnekte, muz yiyen bir kişiye beslenme verilerinin nasıl ekleneceği gösterilmektedir.
Veri kaynağı oluşturma
Android
Yeni bir veri kaynağı oluşturmak için DataSource.Builder
kullanın. Örneğin, nutritionSource
.
val nutritionSource = DataSource.Builder()
.setDataType(DataType.TYPE_NUTRITION)
// ...
.build()
REST
Yeni bir veri kaynağı oluşturmak için REST API'yi çağırın. Örneğin, NutritionSource
.
HTTP yöntemi
POST
URL isteyin
https://www.googleapis.com/fitness/v1/users/me/dataSources
İstek metni
{
"dataStreamName": "NutritionSource",
"type": "raw",
"application": {
"detailsUrl": "http://example.com",
"name": "My Example App",
"version": "1"
},
"dataType": {
"name": "com.google.nutrition",
}
}
Yanıt
Veri kaynağınız başarıyla oluşturulduysa 200 OK
HTTP yanıt durum kodu alırsınız. Yanıt gövdesi, datasource.dataStreamId
özelliği dahil olmak üzere veri kaynağının JSON temsilini içerir. Veri eklemek için bu kimliği dataSourceId
olarak kullanın.
CURL komutu
$ 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
Beslenme verileri ekleniyor
Android
Bu örnekte, nutritionSource
veri kaynağını kullanarak yeni bir veri noktasının nasıl oluşturulacağı ve bir muz için besin değeri verilerinin nasıl ekleneceği gösterilmektedir.
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
Bu örnekte, NutritionSource
veri kaynağını kullanarak bir beslenme verileri grubunu nasıl ekleyeceğiniz gösterilmektedir. Besin verileri türünün değerleri besin değerleri (harita), yemek türü (4 = 'snack') ve gerçek yiyecek öğesidir (dize).
HTTP yöntemi
PATCH
URL isteyin
https://www.googleapis.com/fitness/v1/users/me/dataSources/datasource.dataStreamId/datasets/1574159699023000000-1574159699023999000
İstek metni
{ "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" } ] } ] }
Yanıt
Veri noktanız başarıyla oluşturulduysa 200 OK
HTTP yanıt durum kodu alırsınız. Yanıt gövdesi, veri kümesinin JSON temsilini içerir.
CURL komutu
$ 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