Nikeplus: Daten exportieren

Neben dem Jawbone Up nutze ich als zweites Tracking-Tool den Dienst Nikeplus. Dabei handelt es sich um eine Lauf -und Fitnesscommunity des gleichnamigen Sportartikelherstellers. Nike promotet mit dem Dienst v.a. seine eigenen Ausrüstungsgegenstände, wie z.B. die Sportwatch, das Sportband oder einfach nur ein paar schnöde neue Turnschuhe mit integriertem Tracking-Chip. Man kann Nikeplus aber auch mit, sagen wir mal Adidas-Turnschuhen nutzen. Dazu benötigt man dann lediglich die entsprechende App (iOS und Android) und einen Nikeplus-Account. Um die Motivation zu steigern, empfiehlt es sich ein paar Lauffreunde zu finden, mit denen man sich dann fortan in wöchentlichen und monatlichen Laufcharts vergleicht. Sollte einem die Marke Nike aus irgendwelchen Gründen unsympathisch sein, gibt es verschiedene alternative Möglichkeiten, wie z.B. runkeeper oder runtastic, die alle ähnliche Features bieten. Meine Wahl fiel am Ende auf Nikeplus, weil ich dort 4-5 Menschen kenne, mit denen es sich gut messen lässt.

Ähnlich wie beim Jawbone Up wollte ich auch bei Nikeplus relativ schnell meine angesammelten Daten zumindest teilweise exportieren und extern aufbereiten. Nike bietet seit kurzem auch eine API an, allerdings wird die momentan nur von wenigen Diensten unterstützt und davon eignet sich keiner um wirklich selbst Herr seiner Daten zu werden. Abhilfe schafft aber das kleine PHP-Tool nikeplusphp. Diese PHP-Klasse greift die Daten direkt von der Nikeplus-Seite ab. D.h. sie nutzt nicht die API, sondern benötigt Username und Passwort um sich anzumelden und die Daten automatisiert abzugreifen. Wie man das Tool relativ schnell nutzen kann, um seine getrackten Läufe zu exportieren und in einem Google-Spreadsheet zu verarbeiten, erkläre ich im Folgenden Schritt-für-Schritt:

  1. Voraussetzung für den Einsatz von nikeplusphp ist ein eigener Webspace mit PHP5 und cURL und JSON – Unterstützung.
  2. Die aktuelle nikeplusphp-Version (4.5) liegt auf Google-Code zum Download.
  3. Die heruntergelassenen Datei „nikeplusphp.4.5.php“ nun in einem neuen Ordner namens „nikeplus“ ablegen.
  4. In diesem Ordner legt man mit einem Texteditor eine zweite leere Datei „index.php„.
  5. In die „index.php“ im Texteditor folgenden Code kopieren (Login und Passwort mit den eigenen Zugangsdaten ausfüllen):
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    < ?php
      require_once 'nikeplusphp.4.5.php';
      $n = new NikePlusPHP('Login', 'Passwort');
      $activities = $n->activities();
      $activities = array_reverse($activities);
     
      $i=1;
    ?>
    <table border="1">
    <tr>
    <th>Count</th>
    <th>ActivityID</th>
    <th>Startzeit</th>
    <th>Distanz in km</th>
    </tr>
    < ?php foreach ($activities as $activity): ?>
    <tr>
    <td>< ?php echo $i; ?>
    </td><td>< ?php echo $activity->activityId; ?></td>
    <td>< ?php echo date ("Y-m-d H:i:s", strtotime($activity->startTimeUtc.' UTC')); ?></td>
    <td>< ?php echo number_format($activity->metrics->distance,2,',','.'); ?></td>
     
    </tr>	
     
    < ?php $i++; ?>
    < ?php endforeach; ?>
    </table>
  6. Jetzt lädt man den Ordner „nikeplus“ per FTP auf den eigenen Webspace hoch. am besten als Unterordner von einer bestehenden Domain, so dass das ganze dann z.B. unter www.meinedomain.de/nikeplus/ abrufbar ist.
  7. Ruft man die Seite auf, sollte das Ergebnis so aussehen. Das obige, kurze Skript erstellt eine rudimentäre HTML-Tabelle, in der alle meine getrackten Läufe mit Datum und Streckenlänge ausgegeben werden.
  8. Den Import der Daten in ein Google-Spreadsheet erledigt folgende Zeile, die man in die erste Zelle eines neuen Spreadsheet-Dokumentes kopiert:
    1
    
    =ImportHtml("http://meinedomain.de/nikeplus/"; "table";1)
  9. Die „ImportHtml„-Funktion greift sämtliche Inhalte der ersten Tabelle auf der mit der URL definierten Seite ab und importiert sie in das Spreadsheet (inkl. Spaltenüberschrift)
  10. Mit den jetzt vorliegenden Daten kann man, wie bereits im Jawbone Up – Beispiel beschrieben, mit einer Pivot-Tabelle die Daten z.B. nach Monaten auswerten und kleine Diagramme erstellen.

  11. Die hier vorgestellte Methode ist natürlich nur die Quick&Dirty-Variante, die in zehn Minuten lauffähig ist. Mit der nikeplusphp-Klasse bekommt man noch wesentlich mehr Daten extrahiert und mit ein bisschen zusätzlichem Aufwand könnte man die exportierten Daten auch gleich in eine eigenen Datenbank oder ein CSV-File auf dem eigenen Server schreiben, so dass man sich nicht in die zusätzliche Abhängigkeit von Google begeben muss.

     

    [Update] Es gibt eine neue Version 4.5.1. Ohne die geht es nicht. Der Code wird ab jetzt wohl nicht mehr bei Google gehostet.

6 Gedanken zu „Nikeplus: Daten exportieren“

  1. Hallo Heiko,
    ich habe gerade diese Anleitung versucht Schritt für Schritt zu befolgen, aber ich habe das irgendwie nicht hinbekommen.
    Ich möchte nämlich zu runtastic wechseln und würde gerne meine ganzen Daten von nike+ in eine CSV-Datei ablegen und bei runtastic importieren. Ist das möglich?

    Es wäre toll wenn du mir dabei irgendwie helfen könntest.

    Vielen Dank!

    Viele Grüße aus Berlin

    Jens

  2. Hi Jens
    Wie weit bist du denn gekommen? Hast du die aktuellste Version von nikeplus? Ich hab grad gesehen, dass es ein Update auf 4.51 gab (http://nikeplusphp.org/) . Mit der 4.5 hat es bei mir auch nicht mehr funktioniert. Vermutlich hat nikeplus was auf der Seite umgestellt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *