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