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 das Fitness REST API, wie unter Erste Schritte beschrieben.

Schritt 2: App authentifizieren

Ihre App muss Anfragen an die Fitness API mit einem Zugriffstoken authentifizieren. Um 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.

Um eine Datenquelle zu erstellen, senden Sie eine authentifizierte HTTP-Anfrage mit diesen 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. kann ein beliebiger Wert sein. Für die Datenquellen-ID in diesem Beispiel gilt eine sinnvolle Namenskonvention. die Sie anwenden 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

Sie verwenden Datasets, um Datenpunkte in den Fitnessspeicher einzufü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
EINFÜGEN
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 ID der Datenquelle sowie die Start- und Endzeiten des Datasets 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, wird der Statuscode 200 OK als Antwort zurückgegeben.

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

Gültige Zeitstempel generieren

Die Zeitstempel im obigen Beispiel werden 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 Sie nun Daten in den Fitnessspeicher eingefügt haben, können Sie eine Sitzung einfügen, um zusätzliche Metadaten für dieses Training. Sitzungen stellen ein Zeitintervall dar, in dem Nutzer um eine Fitnessaktivität durchzuführen.

Um eine Sitzung für dieses Training zu erstellen, sende eine authentifizierte HTTP-Anfrage mit diesen 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 eindeutig sein die mit dem authentifizierten Nutzer verknüpft sind.

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 Sitzungsnamen aus, der für Menschen lesbar und beschreibend ist, da er möglicherweise von anderen Apps verwendet wird um die Sitzung zusammenzufassen. 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 zum Beispiel Für einen einstündigen Lauf können Sie ein Aktivitätssegment vom Typ running (8) für die für eine ganze Stunde. 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. Aktivität erstellen erstellen Sie zuerst eine Datenquelle für Aktivitätssegmente, erstellen dann einen Datensatz und fügen darauf verweisen.

Im folgenden Beispiel werden drei Segmente (laufend, Ruhestand und ausgeführt) im selben Zeitraum erstellt als Herzfrequenzmessung, vorausgesetzt, Sie haben bereits ein Aktivitätssegment erstellt Datenquelle und die Datenquellen-ID lautet „raw:com.google.activity.segment:1234567890:Beispiel Fit:beispiel-fit-hrm-1:123456“:

HTTP-Methode
EINFÜGEN
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 Aktivitätssegmentdatenpunkte werden einer Datenquelle hinzugefügt, die speziell erstellt wurde um Aktivitätssegmente zu verarbeiten. 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 trotzdem ein Lauftraining. Im Allgemeinen Aktivitätstyp der Sitzung entspricht dem dominanten Aktivitätssegmenttyp.

Verwenden Sie den Aktivitätstyp Unbekannt (4), um anzuzeigen, dass sich ein Nutzer ausruht, da Sie möglicherweise wissen, was die Nutzenden tun: Sie stehen möglicherweise still, dehnen sich, trinken 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.