node-jawbone-up
Jawbone UP API Node.js Client
API Version: v.1.1
Official UP API: jawbone.com/up/developer
Installation
npm install jawbone-up --save
Usage
An access_token
attribute is required in the options object!
See below for an example of how this could be done. This library does not
assist in getting an access_token
through OAuth, but once you get the token,
it will apparently last for a year.
A client_secret
attribute is required if you would like to use up.refreshToken.get()
to get new refresh tokens. It is not required otherwise.
var options = // ** REQUIRED ** access_token: 'xyz' // Access token for specific user, client_secret: 'abc' // Client Secret (required for up.refreshToken.get()) var up = options;
Documentation
Official UP API can be found at jawbone.com/up/developer
Example callback:
// Callback function returns an error if applicable// and/or the body of the API response { iferr console; else var data = JSONdata; // do something with data }
User information
// get user infoupme // GET /nudge/api/v.1.1/users/@me/ // get friends of userupfriends // GET /nudge/api/v.1.1/users/@me/friends // get mood of userupmood // GET /nudge/api/v.1.1/users/@me/mood // get trends of useruptrends // GET /nudge/api/v.1.1/users/@me/trends // get goals of userupgoals // GET /nudge/api/v.1.1/users/@me/goals
Moves
// get all moves (paginated results)upmoves // GET /nudge/api/v.1.1/users/@me/moves // get a specific movesupmoves // GET /nudge/api/v.1.1/moves/{move_xid} // get a specific move imageupmoves // GET /nudge/api/v.1.1/moves/{move_xid}/image // get a specific move intensityupmoves // GET /nudge/api/v.1.1/moves/{move_xid}/ticks
Workouts
// get all workouts (paginated results)upworkouts // GET /nudge/api/v.1.1/users/@me/workouts // create a new workoutupworkouts // POST /nudge/api/v.1.1/users/@me/workouts // get a specific workoutupworkouts // GET /nudge/api/v.1.1/workouts/{workout_xid} // update a specific workoutupworkouts // POST https://jawbone.com/nudge/api/v.1.1/workouts/{xid}/partialUpdate // get a specific workout imageupworkouts // GET /nudge/api/v.1.1/workouts/{workout_xid}/image // get a specific workout intensityupworkouts // GET /nudge/api/v.1.1/workouts/{workout_xid}/ticks
Sleeps
// get all sleeps (paginated results)upsleeps // GET /nudge/api/v.1.1/users/@me/sleeps // get a specific sleepupsleeps // GET /nudge/api/v.1.1/sleeps/{sleep_xid} // create a new sleepupsleeps // POST /nudge/api/v.1.1/users/@me/sleeps // get a specific sleep imageupsleeps // GET /nudge/api/v.1.1/sleeps/{sleep_xid}/image // get a specific sleep ticksupsleeps // GET /nudge/api/v.1.1/sleeps/{sleep_xid}/ticks // delete a specific sleepupsleeps // DELETE /nudge/api/v.1.1/sleeps/{sleep_xid}
Meals
// get all meals (paginated results)upmeals // GET /nudge/api/v.1.1/users/@me/meals // create a new mealupmeals // POST /nudge/api/v.1.1/users/@me/meals // update a specific mealupmeals // POST https://jawbone.com/nudge/api/v.1.1/meals/{xid}/partialUpdate // get a specific mealupmeals // GET /nudge/api/v.1.1/meals/{meal_xid}
Body Composition
// get all body events (paginated results)upeventsbody // GET /nudge/api/v.1.1/users/@me/body_events // get a specific body eventupeventsbody // GET /nudge/api/v.1.1/body_events/{event_xid} // create a new body eventupeventsbody // POST /nudge/api/v.1.1/users/@me/body_events // delete a specific body eventupeventsbody // DELETE /nudge/api/v.1.1/body_events/{event_xid}
Cardiac Metrics
// get all cardiac events (paginated results)upeventscardiac // GET /nudge/api/v.1.1/users/@me/cardiac_events // get a specific cardiac eventupeventscardiac // GET /nudge/api/v.1.1/cardiac_events/{event_xid} // create a new cardiac eventupeventscardiac // POST /nudge/api/v.1.1/users/@me/cardiac_events // delete a specific cardiac eventupeventscardiac // DELETE /nudge/api/v.1.1/cardiac_events/{event_xid}
Generic Events
// get all generic events (paginated results)upeventsgeneric // GET /nudge/api/v.1.1/users/@me/generic_events // get a specific generic eventupeventsgeneric // GET /nudge/api/v.1.1/generic_events/{event_xid} // create a new generic eventupeventsgeneric // POST /nudge/api/v.1.1/users/@me/generic_events // update an existing generic eventupeventsgeneric // POST /nudge/api/v.1.1/users/@me/generic_events/{xid}/partialUpdate // delete a specific generic eventupeventsgeneric // DELETE /nudge/api/v.1.1/generic_events/{event_xid}
Mood
// get all moods (paginated results)upmood // GET /nudge/api/v.1.1/users/@me/mood // get a specific moodupmood // GET /nudge/api/v.1.1/mood/{mood_xid} // create a new moodupmood // POST /nudge/api/v.1.1/users/@me/mood // delete a specific moodupmood // DELETE /nudge/api/v.1.1/mood/{mood_xid}
Time Zone
// get a user's timezoneuptimezone // GET /nudge/api/v.1.1/users/@me/timezone
Refresh Token
Added in v.1.1
// get (technically POST) a refresh token (requires client_secret passed into options when initializing)uprefreshToken // POST /nudge/api/v.1.1/users/@me/refreshToken
Settings
Added in v.1.1
// get user settingsupsettings // GET /nudge/api/v.1.1/users/@me/settings
Webhook
Added in v.1.1
// create a webhookupwebhook // POST /users/@me/pubsub?webhook={webhook_url}; // delete a webhookupwebhook // DELETE /users/@me/pubsub
Tests
Tests can be found in the test
folder.
To run tests:
Make sure you first have dependencies installed by running:
npm install
Then you may run all the tests with:
npm test
License
MIT © 2014 Ryan Seys