Erfreuliche Nachrichten: Fitbit gibt jetzt auch Puls-Daten heraus!

Die Firma Fitbit, die für ihre Fitnesstracker wie den Charge HR bekannt ist, hat nun endlich wie bereits vor über einem halben Jahr angekündigt ihre API um die Puls-Daten erweitert (siehe Beitrag im Entwickler-Forum).

Als stolzer Besitzer eines Charge HR zwecks des spannenden Themas Selbstvermessung habe ich natürlich nur darauf gewartet, endlich an diese Daten heranzukommen, um damit meine ganz eigenen Analysen und Reportings erstellen zu können.

Ein kleines Programm für den Job

Da die Fitbit4j-Bibliothek leider veraltet ist und weder OAuth 2.0 noch Puls-Daten unterstützt habe ich mich dieses Wochenende mal hingesetzt und fix etwas zusammengeschrieben, was sich bei der Fitbit API via OAuth 2.0 anmeldet, die Schritt-/Schlaf- und Puls-Daten abholt und in einer PDF chartet.

Das ganze ist ein Servlet, welches als Embedded Tomcat jetzt auf meinem Raspberry Pi läuft und mittels Googles OAuth 2.0 Library mit der Fitbit-API redet. Das Ergebnis sind bisher neben den Roh-JSON-Files und CSV-Extrakten auch eine mit JFreeChart und iText erzeugte PDF, die alles nochmal zusammenfasst.

Ich hatte bei der Entwicklung ein paar Probleme damit die passenden Bibliotheken zusammenzusuchen und alles ans Laufen zu bekommen. Die Dokumentation lies da zu Wünschen übrig. Daher habe ich mich entschlossen meine kleine Anwendung als Open Source der Allgemeinheit zur Verfügung zu stellen, damit der Einsteig nicht so schwer fällt. Vielleicht baut ja jemand doch noch was ganz Tolles darauf auf. 🙂

Ich habe es der Einfachheit halber direkt als Eclipse-Projekt* mit den notwendigen Abhängigkeiten zusammen commitet. Einfach auschecken, in der Config.java alles einstellen und als *Runnable JAR *irgendwo deployen. Bitte aber zuvor den Hinweis im nächsten Punkt beachten.

Der Source Code ist hier: https://github.com/UltraStepsi/StefansFitbitServlet/

*: Für größere Projekte bitte immer ein Build-System wie Maven einsetzen.

Zugang zur Partner API wird benötigt

Damit man an die interessanten „intraday“-Daten über die API herankommt, benötigt man allerdings Zugang zur Partner API, den man bei api@fitbit.com zwecks „personal use“ beantragen kann. Dies hat bei mir ungefähr 3 Wochen gedauert – also etwas Geduld mitbringen.

Zuvor muss man sich auf http://dev.fitbit.com als Entwickler anmelden, eine App registrieren und sich mit dem „Consumer Key“ dann beim Support melden.

Alternative ohne Puls-Daten

Ein anderer Weg ist übrigens ein Download über Google Docs. Dieses Skript unterstützt allerdings noch nicht die brandneuen Puls-Daten. Auch hier wird der Zugang zur Partner API benötigt.