האפליקציה יכולה להקליט נתונים של רמת סוכר בדם על ידי כתיבה לסוג הנתונים com.google.blood_glucose. בסוג הנתונים הזה, כל נקודה על הגרף מייצגת קריאה מיידית של רמת סוכר בדם. נקודה על הגרף מכילה שדות של רמת סוכר בדם, קשרים זמניים לארוחות ולשינה ומקור הדגימה שנמדדה. כל השדות הם אופציונליים, למעט רמת סוכר בדם.
- רמת הסוכר בדם נמדדת ב-mmol/L (1 mmol/L שווה ל-18 mg/dL).
- אם מציינים את הערך הזה, הוא חייב להיות אחד מהערכים שמופיעים ב
FIELD_TEMPORAL_RELATION_TO_MEAL. - הערך של מאפיין סוג הארוחה צריך להיות אחד מהערכים שמפורטים ב
FIELD_MEAL_TYPE. אם סוג הארוחה לא ידוע, משתמשים בערךMEAL_TYPE_UNKNOWN. - אם מציינים את הקשר הזמני לשינה, צריך להשתמש באחד מהערכים שמפורטים ב
FIELD_TEMPORAL_RELATION_TO_SLEEP. - אם מציינים את המאפיין הזה, ערך המאפיין 'מקור הדגימה של רמת סוכר בדם' צריך להיות אחד מהערכים שמפורטים ב
FIELD_BLOOD_GLUCOSE_SPECIMEN_SOURCE.
יצירת מקור נתונים
Android
כדי לכתוב נקודת נתונים של סוכר בדם, יוצרים DataSource חדש מסוג TYPE_BLOOD_GLUCOSE, כמו בדוגמה הבאה:
val bloodGlucoseSource = DataSource.Builder()
.setDataType(TYPE_BLOOD_GLUCOSE)
// ...
.build()
REST
כדי לכתוב נקודת נתונים של רמת סוכר בדם, צריך ליצור מקור נתונים חדש.
שיטת HTTP
POST
כתובת ה-URL של הבקשה
https://www.googleapis.com/fitness/v1/users/me/dataSources
גוף הבקשה
{
"dataStreamName": "BloodGlucose",
"type": "raw",
"application": {
"detailsUrl": "http://example.com",
"name": "My Example App",
"version": "1"
},
"dataType": {
"name": "com.google.blood_glucose"
}
}
תשובה
אם מקור הנתונים נוצר בהצלחה, התשובה היא קוד סטטוס 200 OK. גוף התגובה מכיל ייצוג JSON של מקור הנתונים, כולל מאפיין datasource.dataStreamId שבו אפשר להשתמש כמזהה של מקור הנתונים בבקשות הבאות.
פקודת CURL
$ curl --header "Authorization: Bearer ya29.yourtokenvalue --request POST \ --header "Content-Type: application/json;encoding=utf-8" --data @blood-glucose-ds.json \ https://www.googleapis.com/fitness/v1/users/me/dataSources
הוספת נתונים
Android
כדי להוסיף נתונים למקור שנוצר למעלה, יוצרים נקודה על הגרף למקור הנתונים הזה, שאפשר להוסיף באמצעות History API:
val bloodGlucose = DataPoint.builder(bloodGlucoseSource)
.setTimestamp(timestamp, TimeUnit.MILLISECONDS)
.setField(FIELD_BLOOD_GLUCOSE_LEVEL, 5.0f) // 90 mg/dL
.setField(FIELD_TEMPORAL_RELATION_TO_MEAL, FIELD_TEMPORAL_RELATION_TO_MEAL_BEFORE_MEAL)
.setField(FIELD_MEAL_TYPE, MEAL_TYPE_BREAKFAST)
.setField(FIELD_TEMPORAL_RELATION_TO_SLEEP, TEMPORAL_RELATION_TO_SLEEP_ON_WAKING)
.setField(FIELD_BLOOD_GLUCOSE_SPECIMEN_SOURCE, BLOOD_GLUCOSE_SPECIMEN_SOURCE_CAPILLARY_BLOOD)
.build()
REST
בדוגמה הזו מוצג איך מוסיפים נתונים של רמת הסוכר בדם באמצעות מקור הנתונים שנוצר למעלה.
שיטת HTTP
PATCH
כתובת ה-URL של הבקשה
https://www.googleapis.com/fitness/v1/users/me/dataSources/datasource.dataStreamId/datasets/1574159699023000000-1574159699023000000
גוף הבקשה
לשם הבהרה, גוף ה-JSON שמוצג בהמשך כולל הערות שמסבירות את השימוש בקבועי השדה health. למרות שממשק Fit API יסיר כרגע תגובות, מומלץ מאוד להסיר אותן מהקוד, כי JSON לא תומך רשמית בתגובות.
{
"minStartTimeNs": 1574159699023000000,
"maxEndTimeNs": 1574159699023000000,
"dataSourceId": "datasource.dataStreamId",
"point": [
{
"startTimeNanos": 1574159699023000000,
"endTimeNanos": 1574159699023000000,
"dataTypeName": "com.google.blood_glucose",
"value": [
{
// Blood glucose level, 90 mg/dL
"fpVal": 5.0
},
{
// FIELD_TEMPORAL_RELATION_TO_MEAL_BEFORE_MEAL
"intVal": 3
},
{
// MEAL_TYPE_BREAKFAST
"intVal": 1
},
{
// TEMPORAL_RELATION_TO_SLEEP_ON_WAKING
"intVal": 3
},
{
// BLOOD_GLUCOSE_SPECIMEN_SOURCE_CAPILLARY_BLOOD
"intVal": 2
}
]
}
]
}תשובה
אם נתוני רמת סוכר בדם נוספים בהצלחה, התשובה היא קוד סטטוס 200 OK. גוף התשובה מכיל ייצוג JSON של נתוני הגלוקוז בדם שנוספו.
פקודת CURL
$ curl --header "Authorization: Bearer ya29.yourtokenvalue --request PATCH \
--header "Content-Type: application/json;encoding=utf-8" --data @blood-glucose-data.json \
https://www.googleapis.com/fitness/v1/users/me/dataSources/datasource.dataStreamId/datasets/1574159699023000000-1574159699023000000