-
Notifications
You must be signed in to change notification settings - Fork 5
karthikbgl/python-jawbone-up
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
NOTE: There is a bug in the PyPi version of this library.
Instead of
from jawbone import Jawbone
Just do
from jawbone.jawbone import Jawbone
There are a few other bugs like https: v/s http: header, which would resolve soon (hopefully :) )
Or just include this version (on github) and add the following line in __init__.py
from .jawbone import Jawbone
JawboneUP API
This is a wrapper for the Jawbone UP API.
It has convenience methods for auth, access token, refresh token, and api calls.
For terminologies, refer to the documentation here:
https://jawbone.com/up/developer/authentication
Usage:
from jawbone import Jawbone
jb = Jawbone(client_id, client_secret, redirect_uri, scope='')
The app can be authorized for accessing specific data using the "scope"
The parameter “scope”, by default is 'basic_read', which can be set as per the application’s requirements.
Multiple scopes can be authorized by using space delimiters.
To see the list of available scopes, refer:
https://jawbone.com/up/developer/authentication
(under the heading The “scopes” allowed by the system are)
So, to use the package:
1. Initialization:
jb = Jawbone(client_id, client_secret, redirect_uri, scope='basic_read extended_read')
To make calls on behalf of the user, refer this documentation:
https://jawbone.com/up/developer/authentication
To get the authorization token:
jb.auth()
This call fetches the authentication URL. You should redirect the user to the generated authentication url. Upon successful authorization, the user is redirected to the “redirect_uri” specified. The “code” is specified as a GET parameter.
If there was an error, the response would be to the “redirect_uri” with GET parameter “error”
2. Access Token
Once we have the code, you can get the auth code by calling
token = jb.access_token(code)
Save the generated token response json.
The response, if 200 has the following components as json:
access_token, token_type, expires_at, refresh_token
Store these in the database, for future api calls.
3. Refresh Token
The generated token from the above step has an expiry of 1 year.
The refresh token provided as a part of the access_token() call, can be used to obtain the new credentials
response = jb.refresh_token_call(refresh_code)
4. API Calls
api_call is a generic method for calling any endpoint.
Documentation on endpoints here:
https://jawbone.com/up/developer/endpoints
To make an API call to get sleep data:
endpoint = nudge/api/v.1.0/sleep
response = jb.api_call(access_token, endpoint)
A response is a json with status_code (200, 400, etc). Parse the json for the response data
If response.status == 200, the response.get(“error”) contains the message.
The library dependencies include:
urllib
requests
About
Python wrapper to Jawbone UP API
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published