So zeichnest du ein Training auf

In diesem Dokument wird beschrieben, wie Sie ein Training mit der Fitness REST API aufzeichnen.

Schritt 1: Projekt einrichten

Sie müssen ein Projekt in der Google API Console einrichten und den Zugriff auf die Fitness REST API aktivieren, wie im Einstieg beschrieben.

Schritt 2: App authentifizieren

Ihre App muss Anfragen an die Fitness API mit einem Zugriffstoken authentifizieren. Um zu erhalten, das Zugriffstoken enthält, enthält Ihre Anwendung clientspezifische Anmeldedaten und einen Zugriffsbereich. enthalten, wie unter Anfragen autorisieren beschrieben.

Schritt 3: Datenquelle erstellen

Eine Datenquelle ist eine Quelle von Sensordaten eines bestimmten Typs. Alle Daten eingefügt in Der Fitnessspeicher muss mit einer Datenquelle verknüpft sein. Sie können Datenquellen einmal erstellen können Sie sie auch für zukünftige Sitzungen verwenden.

Wenn Sie eine Datenquelle erstellen möchten, senden Sie eine authentifizierte HTTP-Anfrage mit den folgenden Parametern:

HTTP-Methode
POSTEN
Ressource

https://www.googleapis.com/fitness/v1/users/me/dataSources

Die Nutzer-ID me bezieht sich auf den Nutzer, dessen Zugriffstoken die Anfrage autorisiert.

Anfragetext
{
"name": "example-fit-heart-rate",
"dataStreamId":
    "raw:com.google.heart_rate.bpm:1234567890:Example Fit:example-fit-hrm-1:123456",
"dataType": {
    "field": [{
        "name": "bpm",
        "format": "floatPoint"
    }],
    "name": "com.google.heart_rate.bpm"
},
"application": {
    "packageName": "com.example.fit.someapp",
    "version": "1.0"
},
"device": {
    "model": "example-fit-hrm-1",
    "version": "1",
    "type": "watch",
    "uid": "123456",
    "manufacturer":"Example Fit"
},
"type": "raw"
}

Diese Anfrage erstellt eine Datenquelle für einen Herzfrequenzmesser, der Fitnessdaten bereitstellt. Daten vom Typ com.google.heart_rate.bpm. Sie müssen die ID der Datenquelle angeben. Es kann sich dabei um einen beliebigen Wert handeln. Die Datenquellen-ID in diesem Beispiel folgt einer sinnvollen Benennungskonvention, die Sie übernehmen können. Die Gerätekomponente ist optional, wenn die Daten nur von einer App generiert werden.

Wenn die Anfrage erfolgreich ist, wird der Statuscode 200 OK als Antwort zurückgegeben.

Weitere Informationen zu Datenquellen finden Sie in der API-Referenz für die Users.dataSources.

Schritt 4: Datenpunkte hinzufügen

Mit Datasets können Sie Datenpunkte in den Fitness-Shop einfügen. Ein Dataset ist eine Sammlung von Daten. Daten aus einer zeitbegrenzten Datenquelle erstellen.

Um ein Dataset zu erstellen und Punkte hinzuzufügen, senden Sie eine authentifizierte HTTP-Anfrage mit diesen Parameter:

HTTP-Methode
PATCH
Ressource

https://www.googleapis.com/fitness/v1/users/me/dataSources/
raw:com.google.heart_rate.bpm:1234567890:Example%20Fit:example-fit-hrm-1:123456/datasets/1411053997000000000-1411057556000000000

Die URL enthält die Datenquellen-ID sowie den Start- und Endzeitpunkt des Datensatzes in Nanosekunden.

Anfragetext
{
"minStartTimeNs": 1411053997000000000,
"maxEndTimeNs": 1411057556000000000,
"dataSourceId":
  "raw:com.google.heart_rate.bpm:1234567890:Example Fit:example-fit-hrm-1:123456",
"point": [
{
  "startTimeNanos": 1411053997000000000,
  "endTimeNanos": 1411053997000000000,
  "dataTypeName": "com.google.heart_rate.bpm",
  "value": [
    {
      "fpVal": 78.8
    }
  ]
},
{
  "startTimeNanos": 1411055000000000000,
  "endTimeNanos": 1411055000000000000,
  "dataTypeName": "com.google.heart_rate.bpm",
  "value": [
    {
      "fpVal": 89.1
    }
  ]
},
{
  "startTimeNanos": 1411057556000000000,
  "endTimeNanos": 1411057556000000000,
  "dataTypeName": "com.google.heart_rate.bpm",
  "value": [
    {
      "fpVal": 62.45
    }
  ]
}
]
}

Diese Anforderung erstellt einen Datensatz mit drei Herzfrequenz-Datenpunkten innerhalb einer Stunde für die Daten Quelle im vorherigen Schritt.

Wenn die Anfrage erfolgreich ist, enthält die Antwort den Statuscode 200 OK.

Weitere Informationen zu Datensätzen finden Sie in der API-Referenz für die Ressource Users.dataSources.datasets.

Gültige Zeitstempel generieren

Die Zeitstempel im Beispiel oben sind in Nanosekunden angegeben. Um gültige Zeitstempel zu generieren, können Sie folgendes Python-Skript:

from datetime import datetime, timedelta
import calendar

def date_to_nano(ts):
    """
    Takes a datetime object and returns POSIX UTC in nanoseconds
    """
    return calendar.timegm(ts.utctimetuple()) * int(1e9)

if __name__ == '__main__':
    print 'Current time is %d' % date_to_nano(datetime.now())
    print 'Time 1 hour ago was %d' % date_to_nano(datetime.now() +
       timedelta(hours=-1))

Schritt 5: Sitzung erstellen

Nachdem du Daten in den Fitness-Shop eingefügt hast, kannst du eine Trainingseinheit einfügen, um zusätzliche Metadaten für dieses Training anzugeben. Sitzungen sind ein Zeitintervall, in dem Nutzer eine Fitnessaktivität ausführen.

Wenn du eine Sitzung für dieses Training erstellen möchtest, sende eine authentifizierte HTTP-Anfrage mit den folgenden Parametern:

HTTP-Methode
PUT
Ressource

https://www.googleapis.com/fitness/v1/users/me/sessions/sessionId

Die sessionId ist beliebig und muss für alle Sitzungen, die mit dem authentifizierten Nutzer verknüpft sind, eindeutig sein.

Anfragetext
{
"id": "example-fit-1411053997",
"name": "Example Fit Run on Sunday Afternoon",
"description": "Example Fit Running Session",
"startTimeMillis": 1411053997000,
"endTimeMillis": 1411057556000,
"application": {
"name": "Foo Example App",
"version": "1.0"
},
"activityType": 8
}

Wählen Sie einen für Menschen lesbaren und aussagekräftigen Sitzungsnamen aus, da er von anderen Apps zur Zusammenfassung der Sitzung verwendet werden kann. Beginn und Ende von Sitzungen werden in Millisekunden angegeben. (keine Nanosekunden). Verwenden Sie für Ihre Sitzungen und Datenquellen denselben Paketnamen. wodurch Daten einheitlicher machen und dafür sorgen, dass die datengetriebene Attribution mit Ihrer App verknüpft ist.

Das in dieser Sitzung angegebene Zeitintervall deckt die zuvor eingefügten Herzfrequenzdaten ab, sodass Google Fit verknüpft diese Datenpunkte mit dieser Sitzung.

Weitere Informationen zu Sitzungen finden Sie in der API-Referenz für die Users.sessions.

Schritt 6: Aktivitätssegmente erstellen

Mithilfe von Aktivitätssegmenten können Sie verschiedene Aktivitäten innerhalb einer Sitzung darstellen. Ein Aktivitätssegment ist ein Zeitsegment, das eine einzelne Aktivität abdeckt. Wenn ein Nutzer beispielsweise eine Stunde lang joggt, können Sie für die gesamte Stunde ein Aktivitätssegment vom Typ running (8) erstellen. Wenn ein Nutzer 25 Minuten lang aktiv ist, nach 5 Minuten eine Pause macht und dann noch einmal können Sie drei aufeinanderfolgende Aktivitätssegmente vom Typ running, unknown bzw. running.

Ein Aktivitätssegment wird genauso erstellt wie jeder andere Datenpunkt. Wenn Sie Aktivitätssegmente erstellen möchten, müssen Sie zuerst eine Datenquelle für Aktivitätssegmente und dann ein Dataset erstellen und diesem Datenpunkte für Aktivitätssegmente hinzufügen.

Im folgenden Beispiel werden drei Segmente (Laufen, Ruhe und Laufen) in denselben Zeiträumen wie die Herzfrequenzmessungen erstellt, vorausgesetzt, Sie haben bereits eine Datenquelle für Aktivitätssegmente erstellt und die Datenquellen-ID lautet „raw:com.google.activity.segment:1234567890:Beispiel-Fit:beispiel-fit-hrm-1:123456“:

HTTP-Methode
PATCH
Ressource
https://www.googleapis.com/fitness/v1/users/me/dataSources/
raw:com.google.activity.segment:1234567890/datasets/1411053997000000000-1411057556000000000
Anfragetext
{
"minStartTimeNs": 1411053997000000000,
"maxEndTimeNs": 1411057556000000000,
"dataSourceId":
  "raw:com.google.activity.segment:1234567890",
"point": [
{
  "startTimeNanos": 1411053997000000000,
  "endTimeNanos": 1411053997000000000,
  "dataTypeName": "com.google.activity.segment",
  "value": [
    {
      "intVal": 8
    }
  ]
},
{
  "startTimeNanos": 1411055000000000000,
  "endTimeNanos": 1411055000000000000,
  "dataTypeName": "com.google.activity.segment",
  "value": [
    {
      "intVal": 4
    }
  ]
},
{
  "startTimeNanos": 1411057556000000000,
  "endTimeNanos": 1411057556000000000,
  "dataTypeName": "com.google.activity.segment",
  "value": [
    {
      "intVal": 8
    }
  ]
}
]
}

Diese Datenpunkte für Aktivitätssegmente werden einer Datenquelle hinzugefügt, die speziell für die Verarbeitung von Aktivitätssegmenten erstellt wurde. Sie können für jeden Satz von Segmenten eine neue Datenquelle erstellen, sollten Sie eine für eine bestimmte Art von Sitzung wie etwa das Ausführen verwenden.

Für Sitzungen wird ein Aktivitätstyp angegeben, der der allgemeinen Aktivität des Nutzers entsprechen sollte. Auch wenn der Nutzer beim Laufen eine Pause einlegt, ist das gesamte Training immer noch ein Lauftraining. Im Allgemeinen Aktivitätstyp der Sitzung entspricht dem dominanten Aktivitätssegmenttyp.

Verwenden Sie den Aktivitätstyp unbekannt (4), um anzugeben, dass sich ein Nutzer ausruht, da Sie möglicherweise nicht wissen, was er tut: Er sitzt vielleicht still, macht sich lang, trinkt Wasser usw. Wenn Sie wissen, dass sich der Nutzer nicht bewegt, können Sie still (3) verwenden.

Eine detaillierte Liste der Aktivitätstypen finden Sie unter Aktivitätstypen.

Zusammenfassung

In dieser Anleitung haben Sie Datenquellen für Datentypen und Aktivitätssegmente erstellt. du hast Folgendes eingefügt: Datenpunkte in den Fitness-Store; haben Sie Aktivitätssegmente erstellt, Aktivitäten während eines Trainings; und Sie haben eine Sitzung eingefügt, die den gesamten Training.

Google Fit verknüpft die von Ihnen eingefügten Daten und alle anderen verfügbaren Daten für diesen Zeitraum durch eine Sitzung, die das Training des Nutzers darstellt.