Как получать еженедельные данные Google Fit Rest API

#python #google-fit #google-fit-api

#python #google-fit #google-fit-api

Вопрос:

Я пытаюсь получить свой еженедельный сводный подсчет шагов из Google Fit, используя их REST Api, следуя их документации, но данные о точках возвращаются пустыми. Я включил местоположение чтения и область действия для токена доступа. Мой код :

 import json
import requests

api_url = "https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate"

access_token = ""

headers = {
  "Authorization": "Bearer {}".format(access_token),
  "Content-Type": "application/json;encoding=utf-8"
  }

body = {
  "aggregateBy": [{
    "dataTypeName": "com.google.step_count.delta",
    "dataSourceId": "derived:com.google.step_count.delta:com.google.android.gms:estimated_steps"
  }],
  "bucketByTime": { "durationMillis": 86400000 },
  "startTimeMillis": 1438705622000,
  "endTimeMillis": 1439310422000
}


response = requests.post(api_url, data=json.dumps(body), headers=headers)

print(response.text)
  

Ответ №1:

   "aggregateBy": [{
    "dataTypeName": "com.google.step_count.delta",
    "dataSourceId": "derived:com.google.step_count.delta:com.google.android.gms:estimated_steps"
  }],
  

Вы aggregateBy указываете как имя типа данных, так и идентификатор источника данных; последнее имеет приоритет, поэтому данные будут возвращены только в том случае, если estimated_steps поток содержит данные на сервере.

Я бы предложил удалить dataSourceId , тогда step_count.delta будет использоваться источник данных по умолчанию для.

Комментарии:

1. Я все еще получаю пустой словарь точек после удаления DataSourceID

2. Есть ли у вас данные в источнике данных, если вы просто пытаетесь их прочитать, без агрегирования?

3. Да, я использую Google Fit ежедневно, и я могу просматривать данные о своей активности из приложения

4. Хорошо, но удалось ли вам отправить запрос на получение этих данных без агрегирования через REST API?

5. Я не могу найти конечную точку API Google fit для доступа к неагрегированным данным для подсчета моих шагов. Не могли бы вы направить меня?