Users.dataset: aggregate

agrega dados de um determinado tipo ou fluxo em buckets divididos por um determinado um tipo de limite. Vários conjuntos de dados de diversos tipos e de diversas origens podem ser agregadas em exatamente um tipo de bucket por solicitação. Faça o teste agora.

Solicitação

Solicitação HTTP

POST https://www.googleapis.com/fitness/v1/users/userId/dataset:aggregate

Parâmetros

Nome do parâmetro Valor Descrição
Parâmetros de caminho
userId string Agregar dados sobre a pessoa identificada. Use me para indicar o usuário autenticado. Somente me é compatível no momento.

Autorização

Esta solicitação requer autorização com pelo menos um dos seguintes escopos:

Escopo
https://www.googleapis.com/auth/fitness.activity.read
https://www.googleapis.com/auth/fitness.activity.write
https://www.googleapis.com/auth/fitness.location.read
https://www.googleapis.com/auth/fitness.location.write
https://www.googleapis.com/auth/fitness.body.read
https://www.googleapis.com/auth/fitness.body.write
https://www.googleapis.com/auth/fitness.nutrition.read
https://www.googleapis.com/auth/fitness.nutrition.write
https://www.googleapis.com/auth/fitness.blood_pressure.read
https://www.googleapis.com/auth/fitness.blood_pressure.write
https://www.googleapis.com/auth/fitness.blood_glucose.read
https://www.googleapis.com/auth/fitness.blood_glucose.write
https://www.googleapis.com/auth/fitness.oxygen_saturation.read
https://www.googleapis.com/auth/fitness.oxygen_saturation.write
https://www.googleapis.com/auth/fitness.body_temperature.read
https://www.googleapis.com/auth/fitness.body_temperature.write
https://www.googleapis.com/auth/fitness.reproductive_health.read
https://www.googleapis.com/auth/fitness.reproductive_health.write

Para mais informações, consulte a página de autenticação e autorização.

Corpo da solicitação

No corpo da solicitação, forneça os dados com a seguinte estrutura:

{
  "startTimeMillis": long,
  "endTimeMillis": long,
  "aggregateBy": [
    {
      "dataTypeName": string,
      "dataSourceId": string
    }
  ],
  "filteredDataQualityStandard": [
    string
  ],
  "bucketByTime": {
    "durationMillis": long,
    "period": {
      "type": string,
      "value": integer,
      "timeZoneId": string
    }
  },
  "bucketBySession": {
    "minDurationMillis": long
  },
  "bucketByActivityType": {
    "minDurationMillis": long,
    "activityDataSourceId": string
  },
  "bucketByActivitySegment": {
    "minDurationMillis": long,
    "activityDataSourceId": string
  }
}
Nome da propriedade Valor Descrição Observações
startTimeMillis long O início de uma janela de tempo. Os dados que cruzam com essa janela de tempo serão agregados. A hora está em milissegundos desde o período, inclusive.
endTimeMillis long O fim de uma janela de tempo. Os dados que cruzam com essa janela de tempo serão agregados. A hora está em milissegundos desde o período, inclusive.
aggregateBy[] list A especificação dos dados a serem agregados. Pelo menos uma especificação "aggregateBy" precisa ser fornecida. Todos os dados especificados serão agregados usando os mesmos critérios de agrupamento por classes. Haverá um conjunto de dados na resposta para cada especificaçãoaggregateBy.
aggregateBy[].dataTypeName string O tipo de dados a serem agregados. Todas as fontes que fornecem esse tipo de dado contribuirão para a agregação. A resposta conterá um único conjunto de dados para o nome desse tipo de dados. O conjunto de dados terá o ID de origem de dados derivad::com.google.android.gms:aggregated. Se o usuário não tiver dados para esse tipo, um conjunto de dados vazio será retornado. Observação: os dados podem ser agregados por dataTypeName ou dataSourceId, não por ambos.
aggregateBy[].dataSourceId string Um ID de fonte de dados para agregar. Somente os dados do ID da fonte de dados especificado serão incluídos na agregação. Se especificada, essa fonte de dados precisa existir. os escopos do OAuth nas credenciais fornecidas precisam conceder acesso de leitura a esse tipo de dados. O conjunto de dados na resposta terá o mesmo ID de origem de dados. Observação: os dados podem ser agregados por dataTypeName ou dataSourceId, não por ambos.
filteredDataQualityStandard[] list NÃO preencha este campo. Ela é ignorada.
bucketByTime nested object Especifica que os dados serão agregados por um único intervalo de tempo. Mutuamente exclusivo de outras especificações de agrupamento por classes.
bucketByTime.durationMillis long Especifica que os intervalos de resultados agregam dados de acordo com os períodos de tempo de duraçãoMillis exatos. Os prazos que não contiverem dados serão incluídos na resposta com um conjunto de dados vazio.
bucketByTime.period nested object
bucketByTime.period.type string

Os valores aceitáveis são:
  • "day"
  • "month"
  • "week"
bucketByTime.period.value integer
bucketByTime.period.timeZoneId string org.joda.timezone.DateTimeZone
bucketBySession nested object Especifica que os dados serão agregados por sessões de usuários. Os dados que não estiverem no período de uma sessão não serão incluídos na resposta. Mutuamente exclusivo de outras especificações de agrupamento por classes.
bucketBySession.minDurationMillis long Especifica que apenas as sessões com duração maior que minDurationMillis são consideradas e usadas como um contêiner de dados agregados.
bucketByActivityType nested object Especifica que os dados serão agregados pelo tipo de atividade sendo realizada quando os dados foram registrados. Todos os dados registrados durante um determinado tipo de atividade (para o período determinado) serão agregados no mesmo bucket. Os dados registrados enquanto o usuário não estava ativo não serão incluídos na resposta. Mutuamente exclusivo de outras especificações de agrupamento por classes.
bucketByActivityType.minDurationMillis long Especifica que apenas segmentos de atividade com duração maior que minDurationMillis são considerados e usados como um contêiner de dados agregados.
bucketByActivityType.activityDataSourceId string O stream de atividades padrão será usado se um activityDataSourceId específico não for especificado.
bucketByActivitySegment nested object Especifica que os dados serão agregados a cada segmento de atividade registrado para um usuário. Semelhante a bucketByActivitySegment, mas o agrupamento é feito para cada segmento de atividade em vez de todos os segmentos do mesmo tipo. Mutuamente exclusivo de outras especificações de agrupamento por classes.
bucketByActivitySegment.minDurationMillis long Especifica que apenas segmentos de atividade com duração maior que minDurationMillis são considerados e usados como um contêiner de dados agregados.
bucketByActivitySegment.activityDataSourceId string O stream de atividades padrão será usado se um activityDataSourceId específico não for especificado.

Resposta

Se for bem-sucedido, esse método retornará um corpo de resposta com esta estrutura:

{
  "bucket": [
    {
      "type": string,
      "startTimeMillis": long,
      "endTimeMillis": long,
      "dataset": [
        users.dataSources.datasets Resource
      ],
      "session": {
        "id": string,
        "name": string,
        "description": string,
        "startTimeMillis": long,
        "endTimeMillis": long,
        "modifiedTimeMillis": long,
        "application": {
          "packageName": string,
          "version": string,
          "detailsUrl": string,
          "name": string
        },
        "activityType": integer,
        "activeTimeMillis": long
      },
      "activity": integer
    }
  ]
}
Nome da propriedade Valor Descrição Observações
bucket[] list Uma lista de buckets que contém os dados agregados.
bucket[].type string O tipo de bucket indica como a agregação de dados é executada nele.

Os valores aceitáveis são:
  • "activitySegment"
  • "activityType"
  • "session"
  • "time"
  • "unknown"
bucket[].startTimeMillis long É o horário de início dos dados agregados, em milissegundos desde a época, inclusive.
bucket[].endTimeMillis long É o horário de término dos dados agregados, em milissegundos desde a época, inclusive.
bucket[].dataset[] list Haverá um conjunto de dados por AggregateBy na solicitação.
bucket[].session nested object Disponível para Bucket.Type.SESSION
bucket[].session.id string Um identificador gerado pelo cliente que é exclusivo em todas as sessões desse usuário específico.
bucket[].session.name string Um nome legível da sessão.
bucket[].session.description string Uma descrição da sessão.
bucket[].session.startTimeMillis long Um horário de início, em milissegundos desde o período, inclusive.
bucket[].session.endTimeMillis long Um horário de término, em milissegundos desde o período, inclusive.
bucket[].session.modifiedTimeMillis long Carimbo de data/hora que indica quando a sessão foi modificada pela última vez.
bucket[].session.application nested object O aplicativo que criou a sessão.
bucket[].session.application.packageName string Nome do pacote deste aplicativo. Ele é usado como um identificador exclusivo quando criado por aplicativos Android, mas não pode ser especificado por clientes REST. Os clientes REST terão o número do projeto do desenvolvedor refletido nos IDs do fluxo de dados da fonte de dados, e não no packageName.
bucket[].session.application.version string Versão do aplicativo. Atualize esse campo sempre que o aplicativo for alterado de maneira que afete a computação dos dados.
bucket[].session.application.detailsUrl string Um URI opcional que pode ser usado para vincular de volta ao aplicativo.
bucket[].session.application.name string O nome deste aplicativo. Isso é obrigatório para clientes REST, mas não aplicamos a exclusividade desse nome. Ele é fornecido como uma questão de conveniência para outros desenvolvedores que querem identificar qual REST criou um aplicativo ou fonte de dados.
bucket[].session.activityType integer O tipo de atividade que esta sessão representa.
bucket[].session.activeTimeMillis long Tempo de atividade da sessão. Embora start_time_millis e end_time_millis definam o tempo completo da sessão, o tempo ativo pode ser menor e especificado por "active_time_millis". Se o tempo inativo durante a sessão for conhecido, ele também precisará ser inserido por um ponto de dados com.google.activity.segment com um valor de atividade STILL

bucket[].activity integer Disponível para Bucket.Type.ACTIVITY_TYPE, Bucket.Type.ACTIVITY_SEGMENT

Confira!

Use o APIs Explorer abaixo para chamar esse método em dados ativos e ver a resposta.