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-1411057556000000000Die 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.