Skip to main content

Library for the Withings API

Project description

Python withings-api

Python library for the Withings Health API

Build Status Maintainability Test Coverage

Withings Health API https://developer.withings.com/oauth2/

Uses OAuth 2.0 to authenticate. You need to obtain a client id and consumer secret from Withings by creating an application here: http://developer.withings.com/oauth2/

Installation

pip install withings-api

Usage

For a complete example, checkout the integration test in scripts/integration_test.py. It has a working example on how to use the API.

from withings_api import WithingsAuth, WithingsApi, AuthScope
from withings_api.common import get_measure_value, MeasureType

auth = WithingsAuth(
    client_id='your client id',
    consumer_secret='your consumer secret',
    callback_uri='your callback uri',
    mode='demo',  # Used for testing. Remove this when getting real user data.
    scope=(
        AuthScope.USER_ACTIVITY,
        AuthScope.USER_METRICS,
        AuthScope.USER_INFO,
        AuthScope.USER_SLEEP_EVENTS,
    )
)

authorize_url = auth.get_authorize_url()
# Have the user goto authorize_url and authorize the app. They will be redirected back to your redirect_uri.

credentials = auth.get_credentials('code from the url args of redirect_uri')

# Now you are ready to make calls for data.
api = WithingsApi(credentials)

meas_result = api.measure_get_meas()
weight_or_none = get_measure_value(meas_result, with_measure_type=MeasureType.WEIGHT)

Building

Building, testing and lintings of the project is all done with one script. You only need a few dependencies.

Dependencies:

  • python3 in your path.
  • The python3 venv module.

The build script will setup the venv, dependencies, test and lint and bundle the project.

./scripts/build.sh

Integration Testing

There exists a simple integration test that runs against Withings' demo data. It's best to run this after you have successful builds.

Note: after changing the source, you need to run build for the integration test to pickup the changes.

./scripts/build.sh
source ./venv/bin/activate
./scripts/integration_test.py --client-id <your client id> --consumer-secret <your consumer secret> --callback-uri <your clalback uri>

The integration test will cache the credentials in a <project root>/.credentials file between runs. If you get an error saying the access token expired, then remove that credentials file and try again.

Project details


Download files

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

Source Distribution

withings_api-2.1.2.tar.gz (11.7 kB view details)

Uploaded Source

Built Distribution

withings_api-2.1.2-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file withings_api-2.1.2.tar.gz.

File metadata

  • Download URL: withings_api-2.1.2.tar.gz
  • Upload date:
  • Size: 11.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.7

File hashes

Hashes for withings_api-2.1.2.tar.gz
Algorithm Hash digest
SHA256 7c17d6ad9a5f57403de5b1074ba20ecd70217bad86a9b9fc5af0546e7918e4fa
MD5 66ccc6b6d5d6ee197868444d776c18b9
BLAKE2b-256 5cf581ab83f9a8714556f7e0dfc9e46aeb7553d31d92b6fb2d047dbe4b1861f5

See more details on using hashes here.

Provenance

File details

Details for the file withings_api-2.1.2-py3-none-any.whl.

File metadata

  • Download URL: withings_api-2.1.2-py3-none-any.whl
  • Upload date:
  • Size: 12.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.7.4 Linux/5.0.0-1020-azure

File hashes

Hashes for withings_api-2.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0758738bf15eb2fa9218cb89151eadb72967387b74cd4531d41506b478ed4168
MD5 53dc36eb861b7235be5de65d172efa3c
BLAKE2b-256 f1adee0f4dcc6dc606ce70238f5e76fa1e47aa524371b09101ed7b33ae5b108d

See more details on using hashes here.

Provenance

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