Ler os alimentos consumidos

Android

Seu app pode receber uma lista de alimentos consumidos em um período especificado criando uma solicitação de leitura de dados e consultando DataType.TYPE_NUTRITION, conforme mostrado no exemplo a seguir:

val readRequest = DataReadRequest.Builder()
    .read(DataType.TYPE_NUTRITION)
    .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
    .build()

Para mais informações sobre como ler dados, consulte Trabalhar com o histórico do Google Fit.

REST

Recuperar uma lista de itens alimentares consumidos usando a API REST é um processo de três etapas:

  1. Recupere uma lista de fontes de dados disponíveis para o tipo de dados com.google.nutrition. Como alternativa, se os detalhes da fonte de dados já forem conhecidos, eles poderão ser usados diretamente na próxima etapa.
  2. Receba uma lista dos alimentos consumidos de cada fonte de dados.
  3. Se houver mais de uma fonte de dados, combine as listas de itens alimentares no aplicativo cliente.

Como extrair uma lista de fontes de dados de alimentos

Como apenas o datasource.dataStreamId é necessário de cada fonte de dados, uma máscara de campo pode ser usada, como mostrado aqui, para limitar a resposta apenas a essa propriedade.

Método HTTP

GET

Request URL

https://www.googleapis.com/fitness/v1/users/me/dataSources?dataTypeName=com.google.nutrition&fields=dataSource(dataStreamId)

Resposta

Se a operação for bem-sucedida, a resposta será um código de status 200 OK. O corpo da resposta contém uma lista JSON, e cada item corresponde a uma fonte de dados.

Exemplo:

{
 "dataSource": [
  {
   "dataStreamId": "raw:com.google.nutrition:com.example.nutritionSource1:"
  },
  {
   "dataStreamId": "raw:com.google.nutrition:com.example.nutritionSource2:"
  }
 ]
}

Comando cURL

$ curl \
  'https://www.googleapis.com/fitness/v1/users/me/dataSources?dataTypeName=com.google.nutrition&fields=dataSource(dataStreamId)' \
      --header 'Authorization: Bearer ya29.yourtokenvalue' \
      --header 'Accept: application/json' \
      --compressed

Como conseguir uma lista de alimentos consumidos de uma fonte de dados

Use o dataSource.dataStreamId de cada uma das fontes na etapa 1, por vez, para recuperar as listas de alimentos consumidos.

O datasetId é o início e o fim do período necessário, em nanossegundos, conforme definido no recurso de conjunto de dados.

Por exemplo, 1546300800000000000-1546387200000000000 representa o datasetId de 01 de janeiro de 2019, às 00:00:00 UTC a 02 de janeiro de 2019, às 00:00:00.

Método HTTP

GET

Request URL

https://www.googleapis.com/fitness/v1/users/me/dataSources/dataSource.dataStreamId/datasets/1546300800000000000-1546387200000000000?fields=point%2Fvalue%2FstringVal

Resposta

{
 "point": [
  {
   "value": [
    {},
    {},
    {
     "stringVal": "apple"
    }
   ]
  },
  {
   "value": [
    {},
    {},
    {
     "stringVal": "banana"
    }
   ]
  },
  {
   "value": [
    {},
    {},
    {
     "stringVal": "carrot"
    }
   ]
  }
 ]
}

Comando cURL

$ curl \
  'https://www.googleapis.com/fitness/v1/users/me/dataSources/dataSource.dataStreamId/datasets/157059699023000000-1575159699023999000?fields=point%2Fvalue%2FstringVal' \
      --header 'Authorization: Bearer ya29.yourtokenvalue' \
      --header 'Accept: application/json' \
      --compressed