Skip to main content

API for retrieving workout data from Nike+.

Project description

NikePlus API

As a Nike+ user and software engeneer I thought it would be interesting to be able to get the raw data of my runs. This little bit of software enables you to fetch that data either in XML (as provided by Nike) or in JSON.

All you need is you UserID, which you can get by following those steps:

  1. Sign in to NikePlus.

  2. Click My Runs.

  3. Click the Share button on the top right of your runs.

  4. Click Add to a Web page.

  5. Click Grab the Code.

The Code is now copied to your clipboard. Inside that code, you can find your UserID.

How to use

The following tests are live tests with my UserID. They will ensure, that the code works against the live Nike+ API.

>>> import sw.nikeplus
>>> user_id = 279218513

Retrieving data in XML

>>> print sw.nikeplus.get_xml(user_id)
<?xml...<status>success...<run id="1889752785" workoutType="standard"><startTime>2006-10-31T16:50:07+01:00...

The response from Nike+ is cached. If, for any reason, the service is out-of-order on the next try, the old response is returned. You may force a refresh by providing the optional parameter force.

Retrieving data in JSON

>>> print sw.nikeplus.get_json(user_id)
{'status': 'success',...'startTime': '2006-10-31T16:50:07+01:00', 'duration': '1752873', 'id': '1889752785', 'workoutType': 'standard'...

The response from Nike+ is cached here, too. You can provide the optional parameter force as well, if you like to disable caching.

Helper functions

There is a helper function called xml2json. It should work with every XML, not just with the Nike+ one. It is tested inside the package, but may be used from other packages, if you need it:

>>> import sw.nikeplus.utils
>>> print sw.nikeplus.utils.xml2json(
...     """<?xml version="1.0" encoding="UTF-8"?>
...        <note id="1234">
...          <to>Tove</to>
...          <from>Jani</from>
...          <heading>Reminder</heading>
...          <body>Don't forget me this weekend!</body>
...        </note>""")
{'body': "Don't forget me this weekend!", 'to': 'Tove', 'from': 'Jani', 'heading': 'Reminder', 'id': '1234'}

CHANGELOG

0.1 (2012-04-04)

  • initial release

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sw.nikeplus-0.1.tar.gz (7.0 kB view details)

Uploaded Source

File details

Details for the file sw.nikeplus-0.1.tar.gz.

File metadata

  • Download URL: sw.nikeplus-0.1.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for sw.nikeplus-0.1.tar.gz
Algorithm Hash digest
SHA256 831879fca383c076e77768201c39b36686ca84bbfaa8e90b4e2eea8a514715fd
MD5 be1f2653b011c501965a8b657b1b8dac
BLAKE2b-256 9d66ecdd10175225b5f065d9e81fba603a2d4881d76b0e5d86f3ecf7ef876de0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page