Skip to main content

Python withings-api Build status Coverage Status PyPI

Python library for the Withings Health API

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.

Metadata

Release files for withings-api 2.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for withings-api 2.4.0
File Size Uploaded
withings_api-2.4.0.tar.gz 14.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for withings-api 2.4.0
File Interpreter ABI Platform
withings_api-2.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 28.4 kB

Release files / withings_api-2.4.0.tar.gz

Download URL withings_api-2.4.0.tar.gz
Size 14.8 kB
Tags Source
SHA-256 checksum
How to use checksums
bd0e8c29e0f8838413917c7adfc156e77993931efc69fecd417174d24c60335d
BLAKE2b-256 checksum
How to use checksums
f6d830b7a5b2190a67a7266bd747eb0eedcf546105a6fa3c94cea39293ef6980
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.12 CPython/3.8.12 Linux/5.11.0-1028-azure

Release files / withings_api-2.4.0-py3-none-any.whl

Download URL withings_api-2.4.0-py3-none-any.whl
Size 13.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4bd7ff5ae0fd5c35018dec48921c59a5905eb21aef442a98640909069523e06d
BLAKE2b-256 checksum
How to use checksums
9cd57a99f2a7fd803975a5b34ce3671c587ec774a2690a75f558df19ce0e2fd0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.12 CPython/3.8.12 Linux/5.11.0-1028-azure
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page