Agrega dados de um determinado tipo ou stream em buckets divididos por um determinado tipo de limite. Vários conjuntos de dados de vários tipos e de várias fontes podem ser agregados 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 |
Dados agregados para 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 se cruzam com esse período serão agregados. O tempo é em milissegundos desde a época, inclusive. | |
endTimeMillis |
long |
O fim de uma janela de tempo. Os dados que se cruzam com esse período serão agregados. O tempo é em milissegundos desde a época, inclusive. | |
aggregateBy[] |
list |
A especificação dos dados a serem agregados. Pelo menos uma especificação aggregateBy deve ser fornecida. Todos os dados especificados serão agregados usando os mesmos critérios de agrupamento. Haverá um conjunto de dados na resposta para cada especificação aggregateBy. | |
aggregateBy[].dataTypeName |
string |
O tipo de dados a serem agregados. Todas as fontes que fornecem esse tipo de dado contribuem para a agregação. A resposta conterá um único conjunto de dados para esse nome de tipo de dados. O conjunto de dados terá um ID de fonte de dados derivado: | |
aggregateBy[].dataSourceId |
string |
Um ID de fonte de dados a ser agregado. Somente as informações do ID da fonte de dados especificado serão incluídas na agregação. Se especificada, essa origem de dados precisa existir. Os escopos do OAuth nas credenciais fornecidas precisam conceder acesso de leitura a esse tipo de dado. O conjunto de dados na resposta terá o mesmo ID da fonte de dados. Observação: os dados podem ser agregados pelo dataTypeName ou pelo dataSourceId, não por ambos. | |
filteredDataQualityStandard[] |
list |
NÃO preencha este campo. Ela será ignorada. | |
bucketByTime |
nested object |
Especifica que os dados são agregados por um único intervalo de tempo. Mutuamente exclusivo de outras especificações de bucket. | |
bucketByTime.durationMillis |
long |
Especifica que os buckets de resultados agregam dados por exatamente os períodos. Os períodos que não contêm 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:
|
|
bucketByTime.period.value |
integer |
||
bucketByTime.period.timeZoneId |
string |
org.joda.fuso horário.DateTimeZone | |
bucketBySession |
nested object |
Especifica que os dados são agregados por sessões de usuários. Os dados que não se enquadram no período de uma sessão não serão incluídos na resposta. Mutuamente exclusivo de outras especificações de bucket. | |
bucketBySession.minDurationMillis |
long |
Especifica que apenas sessões com duração maior que minDurationMillis são consideradas e usadas como um contêiner para dados agregados. | |
bucketByActivityType |
nested object |
Especifica que os dados são agregados pelo tipo de atividade realizada quando os dados são gravados. Todos os dados que foram registrados durante um determinado tipo de atividade (no período especificado) 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 bucket. | |
bucketByActivityType.minDurationMillis |
long |
Especifica que somente segmentos de atividade com duração maior que minDurationMillis são considerados e usados como um contêiner para dados agregados. | |
bucketByActivityType.activityDataSourceId |
string |
O stream de atividade 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 por classes é feito para cada segmento de atividade em vez de todos os segmentos do mesmo tipo. Mutuamente exclusivo de outras especificações de bucket. | |
bucketByActivitySegment.minDurationMillis |
long |
Especifica que somente segmentos de atividade com duração maior que minDurationMillis são considerados e usados como um contêiner para dados agregados. | |
bucketByActivitySegment.activityDataSourceId |
string |
O stream de atividade 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 um bucket significa como a agregação de dados é realizada no bucket.
Os valores aceitáveis são:
|
|
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 época. | |
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 para esta sessão. | |
bucket[].session.startTimeMillis |
long |
Um horário de início, em milissegundos desde a época, inclusive. | |
bucket[].session.endTimeMillis |
long |
Um horário de término, em milissegundos desde a época, 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 para este 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, em vez do packageName. | |
bucket[].session.application.version |
string |
Versão do aplicativo. Atualize esse campo sempre que o aplicativo mudar de modo que afete o cálculo dos dados. | |
bucket[].session.application.detailsUrl |
string |
Um URI opcional que pode ser usado para vincular ao aplicativo. | |
bucket[].session.application.name |
string |
O nome deste aplicativo. Isso é necessário para clientes REST, mas não aplicamos exclusividade desse nome. Esse recurso é de conveniência para outros desenvolvedores que querem identificar qual REST criou um aplicativo ou uma fonte de dados. | |
bucket[].session.activityType |
integer |
Tipo de atividade representado pela sessão. | |
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 de atividade pode ser mais curto e especificado por active_time_millis. Se o tempo de inatividade durante a sessão for conhecido, ele também deverá ser inserido por meio de um ponto de dados com.google.activity.segment com um valor de atividade STILL |
|
bucket[].activity |
integer |
Disponível para Bucket.Type.SEARCH_TYPE, Bucket.Type.SEARCH_SEGMENT |
Confira!
Use o APIs Explorer abaixo para chamar esse método em dados ativos e ver a resposta.