Users.dataset: aggregate

Agrège les données d'un certain type ou d'un flux dans des buckets divisés par un type de limite donné. Plusieurs ensembles de données de plusieurs types et provenant de plusieurs sources peuvent être regroupés dans un seul type de bucket par requête. Essayer maintenant

Requête

Requête HTTP

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

Paramètres

Nom du paramètre Value Description
Paramètres de chemin d'accès
userId string Données globales pour la personne identifiée. Utilisez me pour indiquer l'utilisateur authentifié. Seule la région me est compatible pour le moment.

Autorisation

Cette requête nécessite une autorisation avec au moins l'un des champs d'application suivants:

Portée
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

Pour en savoir plus, consultez la page Authentification et autorisation.

Corps de la requête

Dans le corps de la requête, fournissez les données avec la structure suivante:

{
  "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
  }
}
Nom de propriété Value Description Remarques
startTimeMillis long Début d'une fenêtre temporelle. Les données qui se chevauchent avec cette période sont agrégées. Temps écoulé, en millisecondes depuis l'époque, inclus.
endTimeMillis long Fin d'une fenêtre temporelle. Les données qui se chevauchent avec cette période sont agrégées. Temps écoulé, en millisecondes depuis l'époque, inclus.
aggregateBy[] list Spécification des données à agréger. Vous devez fournir au moins une spécification "aggregateBy". Toutes les données spécifiées seront agrégées selon les mêmes critères de binning. La réponse contient chaque ensemble de données pour chaque spécification "aggregateBy".
aggregateBy[].dataTypeName string Type de données à agréger. Toutes les sources qui fournissent ce type de données contribueront à l'agrégation. La réponse contiendra un seul ensemble de données pour ce nom de type de données. L'ensemble de données possède un ID de source de données dérivé de : :com.google.android.gms:aggregated. Si l'utilisateur ne dispose d'aucune donnée pour ce type de données, un ensemble de données vide sera renvoyé. Remarque: Les données peuvent être agrégées par dataTypeName ou dataSourceId, mais pas les deux.
aggregateBy[].dataSourceId string ID de la source de données à agréger. Seules les données de l'ID de source de données spécifié seront incluses dans l'agrégation. Si elle est spécifiée, cette source de données doit exister. Les champs d'application OAuth des identifiants fournis doivent accorder un accès en lecture à ce type de données. L'ensemble de données de la réponse aura le même ID de source de données. Remarque: Les données peuvent être agrégées par dataTypeName ou dataSourceId, mais pas par les deux.
filteredDataQualityStandard[] list NE REMPLACEZ PAS CE CHAMP. Elle est ignorée.
bucketByTime nested object Indique que les données doivent être agrégées par un seul intervalle de temps. Mutuellement exclusif des autres spécifications de binning
bucketByTime.durationMillis long Spécifie que les buckets de résultats agrègent les données sur des périodes de durée et de durée exactement identiques. Les périodes sans données seront incluses dans la réponse avec un ensemble de données vide.
bucketByTime.period nested object
bucketByTime.period.type string

Les valeurs autorisées sont les suivantes :
  • "day"
  • "month"
  • "week"
bucketByTime.period.value integer
bucketByTime.period.timeZoneId string org.joda.timezone.DateTimeZone
bucketBySession nested object Indique que les données sont agrégées par sessions utilisateur. Les données qui n'appartiennent pas à la période d'une session ne sont pas incluses dans la réponse. Mutuellement exclusif des autres spécifications de binning
bucketBySession.minDurationMillis long Indique que seules les sessions d'une durée supérieure à minDurationMillis sont considérées et utilisées comme conteneur pour les données agrégées.
bucketByActivityType nested object Indique que les données sont agrégées en fonction du type d'activité en cours lors de l'enregistrement des données. Toutes les données enregistrées pendant un certain type d'activité (sur la période donnée) sont regroupées dans le même bucket. Les données enregistrées alors que l'utilisateur était inactif ne seront pas incluses dans la réponse. Mutuellement exclusif des autres spécifications de binning
bucketByActivityType.minDurationMillis long Indique que seuls les segments d'activité dont la durée est supérieure à minDurationMillis sont pris en compte et utilisés comme conteneur pour les données agrégées.
bucketByActivityType.activityDataSourceId string Le flux d'activité par défaut est utilisé si aucune activité activityDataSourceId n'est spécifiée.
bucketByActivitySegment nested object Indique que les données sont agrégées pour chaque segment d'activité enregistré pour un utilisateur. Semblable à bucketByActivitySegment, le binning est effectué pour chaque segment d'activité plutôt que pour tous les segments du même type. Mutuellement exclusif des autres spécifications de binning
bucketByActivitySegment.minDurationMillis long Indique que seuls les segments d'activité dont la durée est supérieure à minDurationMillis sont pris en compte et utilisés comme conteneur pour les données agrégées.
bucketByActivitySegment.activityDataSourceId string Le flux d'activité par défaut est utilisé si aucune activité activityDataSourceId n'est spécifiée.

Réponse

Si la requête aboutit, cette méthode renvoie un corps de réponse présentant la structure suivante :

{
  "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
    }
  ]
}
Nom de propriété Value Description Remarques
bucket[] list Liste de buckets contenant les données agrégées.
bucket[].type string Le type d'un bucket signifie comment l'agrégation des données est effectuée dans le bucket.

Les valeurs autorisées sont les suivantes :
  • "activitySegment"
  • "activityType"
  • "session"
  • "time"
  • "unknown"
bucket[].startTimeMillis long Heure de début des données agrégées, en millisecondes depuis l'époque, incluse.
bucket[].endTimeMillis long Heure de fin des données agrégées, incluse depuis le début de l'époque, en millisecondes.
bucket[].dataset[] list La requête comportera un ensemble de données par AggregateBy.
bucket[].session nested object Disponible pour Bucket.Type.SESSION
bucket[].session.id string Identifiant généré par le client et unique pour toutes les sessions appartenant à cet utilisateur.
bucket[].session.name string Nom lisible de la session.
bucket[].session.description string Description de cette session.
bucket[].session.startTimeMillis long Heure de début, en millisecondes depuis l'époque, incluse.
bucket[].session.endTimeMillis long Heure de fin, en millisecondes depuis l'époque, incluse.
bucket[].session.modifiedTimeMillis long Horodatage indiquant la dernière fois que la session a été modifiée.
bucket[].session.application nested object Application qui a créé la session
bucket[].session.application.packageName string Nom du package de cette application. Il est utilisé comme identifiant unique lorsqu'il est créé par des applications Android, mais ne peut pas être spécifié par les clients REST. Le numéro de projet du développeur client REST sera reflété dans les ID de flux de données de la source de données plutôt que dans le champ packageName.
bucket[].session.application.version string Version de l'application. Vous devez mettre à jour ce champ chaque fois que les modifications apportées à l'application affectent le calcul des données.
bucket[].session.application.detailsUrl string URI facultatif pouvant être utilisé pour créer un lien vers l'application.
bucket[].session.application.name string Nom de cette application. Cette étape est obligatoire pour les clients REST, mais nous n'imposons pas l'unicité de ce nom. Elle est fournie pour faciliter l'identification des développeurs qui souhaitent créer une application ou une source de données.
bucket[].session.activityType integer Type d'activité représenté par cette session.
bucket[].session.activeTimeMillis long Durée d'activité de la session. Alors que start_time_millis et end_time_millis définissent la durée complète de la session, la durée d'activité peut être plus courte et spécifiée par active_time_millis. Si la durée d'inactivité de la session est connue, elle doit également être insérée via un point de données com.google.activity.segment avec une valeur d'activité STILL

bucket[].activity integer Disponible pour Bucket.Type.ACTIVITY_TYPE, Bucket.Type.ACTIVITY_SEGMENT

Essayer

Utilisez l'explorateur d'API ci-dessous pour appeler cette méthode sur des données en direct, puis observez la réponse.