google-fitoauth2-playground

Read BloodPressure and BloodGlucose dataSource from google api fitness playground


If I go to google api playground I do the following steps:

Step 1: Select & authorize APIs. I select the two scopes

  1. https://www.googleapis.com/auth/fitness.blood_glucose.read
  2. https://www.googleapis.com/auth/fitness.blood_pressure.read

cause I need to read blood glucose and pressure from user.

I select a google user and authorize the application to read the data.

Step 2: Exchange authorization code for tokens. I exchange the authorization token for the access and refresh token.

Step 3: Configure request to API. From List possible operations I choose DataSources UsersLists all data sources that are visible to the developer, using the OAuth scopes provided. The list is not exhaustive; the user may have private data sources that are only visible to other developers, or calls using other scopes. Request: GET https://www.googleapis.com/fitness/v1/users/{userId}/dataSources

I change {userId} with me and I suppose to retrieve the data source to read blood glucose and blood pressure, but what I receive is an empty array. { "dataSource": [] }

I need to test the reading of such values (pressure and glucose). What steps do I have to in google playground to achieve these 2 readings?

Thanks in advance


Solution

  • To get blood pressure and glucose data, you first need to create that data. You see in the get api that your datasource is empty. Here is what you can do to create and get a blood pressure:

    1. Install "Instant Heart Rate Monitor" application from "play store",
    2. Signup using your google account,

    3. Connect "Instant Heart Rate Monitor" application to "Google Fit" (go to Instant Heart Rate Monitor profile and click on Google Fit,...)

    4. Measure your heart bpm using this application. Since this app is now connected with Google Fit, you will have a record in your datasource.

    5. To get this record, have the current epoch time in nanoseconds (https://www.epochconverter.com/) and make the following GET call:

      https://www.googleapis.com/fitness/v1/users/me/dataSources/derived:com.google.heart_rate.bpm:com.google.android.gms:merge_heart_rate_bpm/datasets/000000-1518561964000000000

    Note that in the above code, 1518561964000000000 is epoch time in nanoseconds and you need to change it to the current time. You can do the same thing for Glucose data with an application that measures blood Glucose :)