Como gerenciar fontes de dados

A API REST do Google Fitness permite criar, receber e atualizar fontes de dados. Uma fonte de dados representa uma fonte única de dados do sensor. Use fontes de dados para inserir dados de condicionamento físico no armazenamento de dados de condicionamento físico e recupere os dados de condicionamento físico inseridos por uma fonte de dados específica.

As fontes de dados são representadas pelo recurso Users.dataSources.

Criar uma fonte de dados

Este exemplo demonstra como criar uma nova fonte de dados denominada "MyDataSource" que fornece incrementos de contagem de passos.

Método HTTP
POSTAR
Request URL
https://www.googleapis.com/fitness/v1/users/me/dataSources
Corpo da solicitação
{
  "dataStreamName": "MyDataSource",
  "type": "derived",
  "application": {
    "detailsUrl": "http://example.com",
    "name": "Foo Example App",
    "version": "1"
  },
  "dataType": {
    "field": [
      {
        "name": "steps",
        "format": "integer"
      }
    ],
    "name": "com.google.step_count.delta"
  },
  "device": {
    "manufacturer": "Example Manufacturer",
    "model": "ExampleTablet",
    "type": "tablet",
    "uid": "1000001",
    "version": "1.0"
  }
}

Resposta

Se a fonte de dados for criada com sucesso, a resposta será um código de status 200 OK. O corpo da resposta contém uma representação JSON da fonte de dados, incluindo uma propriedade datasource.dataStreamId que pode ser usada como ID da fonte de dados para solicitações subsequentes.

Comando curl
$ curl --header "Authorization: Bearer ya29.yourtokenvalue" -X POST \
--header "Content-Type: application/json;encoding=utf-8" -d @createds.json \
"https://www.googleapis.com/fitness/v1/users/me/dataSources"

Receber uma fonte de dados específica

Neste exemplo, demonstramos como recuperar a fonte de dados ("MyDataSource") criada no exemplo anterior. Quando você cria uma nova fonte de dados, o dataStreamId inclui um identificador exclusivo (mostrado como "quot;1234567890" nestes exemplos). Esse é o número do seu projeto de desenvolvedor e será o mesmo para todas as solicitações feitas com essa conta de desenvolvedor específica. Use o dataStreamId da fonte de dados que você criou.

Método HTTP
CONQUISTE
Request URL
https://www.googleapis.com/fitness/v1/users/me/dataSources/derived:com.google.step_count.delta:1234567890:Example%20Manufacturer:ExampleTablet:1000001:MyDataSource
Corpo da solicitação
Nenhum
Resposta
Se houver uma fonte de dados, a resposta será um código de status 200 OK. O corpo da resposta contém uma representação JSON da fonte de dados.
Comando curl
$ curl --header "Authorization: Bearer ya29.yourtokenvalue" -X GET 
--header "Content-Type: application/json;encoding=utf-8"
"https://www.googleapis.com/fitness/v1/users/me/dataSources/derived:com.google.step_count.delta:1234567890:Example%20Manufacturer:ExampleTablet:1000001:MyDataSource"

Ver dados agregados

Este exemplo demonstra como consultar uma fonte de dados específica para dados agregados. Neste caso, estimated_steps, que é a fonte de dados usada para mostrar a contagem de passos no app Google Fit. Os carimbos de data/hora no corpo da solicitação JSON estão em milissegundos.

Método HTTP
POSTAR
Request URL
https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate
Corpo da solicitação
{
  "aggregateBy": [{
    "dataSourceId":
      "derived:com.google.step_count.delta:com.google.android.gms:estimated_steps"
  }],
  "bucketByTime": { "durationMillis": 86400000 },
  "startTimeMillis": 1454284800000,
  "endTimeMillis": 1455062400000
}

Resposta

Se houver uma ou mais fontes de dados, a resposta será um código de status 200 OK. O corpo da resposta contém uma representação JSON da fonte de dados.

Comando curl
$ curl --header "Authorization: Bearer ya29.yourtokenvalue" -X POST \
--header "Content-Type: application/json;encoding=utf-8" -d @aggregate.json \
"https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate"

Atualizar uma fonte de dados

Este exemplo demonstra como atualizar o nome e a versão do dispositivo de uma fonte de dados.

Método HTTP
PUTAR
Request URL
https://www.googleapis.com/fitness/v1/users/me/dataSources/derived:com.google.step_count.delta:1234567890:Example%20Manufacturer:ExampleTablet:1000001:MyDataSource
Corpo da solicitação
{
  "dataStreamId": "derived:com.google.step_count.delta:1234567890:Example Manufacturer:ExampleTablet:1000001:MyDataSource",
  "dataStreamName": "MyDataSource",
  "type": "derived",
  "application": {
    "detailsUrl": "http://example.com",
    "name": "Foo Example App",
    "version": "1"
  },
  "dataType": {
    "field": [
      {
        "name": "steps",
        "format": "integer"
      }
    ],
    "name": "com.google.step_count.delta"
  },
  "device": {
    "manufacturer": "Example Manufacturer",
    "model": "ExampleTablet",
    "type": "tablet",
    "uid": "1000001",
    "version": "2.0"
  }
}

Resposta

Se a fonte de dados for atualizada, a resposta será um código de status 200 OK. O corpo da resposta inclui uma representação JSON da fonte de dados.

Comando curl
$ curl --header "Authorization: Bearer ya29.yourtokenvalue" -X PUT \
--header "Content-Type: application/json;encoding=utf-8" -d @updateds.json \
"https://www.googleapis.com/fitness/v1/users/me/dataSources/derived:com.google.step_count.delta:1234567890:Example%20Manufacturer:ExampleTablet:1000001:MyDataSource"

Excluir uma fonte de dados

Neste exemplo, demonstramos como excluir uma fonte de dados.

Método HTTP
EXCLUIR
Request URL
https://www.googleapis.com/fitness/v1/users/me/dataSources/derived:com.google.step_count.delta:1234567890:Example%20Manufacturer:ExampleTablet:1000001:MyDataSource
Corpo da solicitação
Nenhum
Resposta
Se a fonte de dados for excluída, a resposta será um código de status 200 OK. O corpo da resposta contém uma representação JSON da fonte de dados que foi excluída.
Comando curl
$ curl --header "Authorization: Bearer ya29.yourtokenvalue" -X DELETE \
--header "Content-Type: application/json;encoding=utf-8" \
"https://www.googleapis.com/fitness/v1/users/me/dataSources/derived:com.google.step_count.delta:1234567890:Example%20Manufacturer:ExampleTablet:1000001:MyDataSource"