Skip to main content

Codustry Fork of withings_api

Project description

Python withings-api Build status codecov 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

[[tool.poetry.source]]
url = "https://pypi.fury.io/codustry/"
name = "fury"

[tool.poetry.dependencies]
withings_api = { version = "*", source = "fury" }

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_cdt-2.3.0.tar.gz (16.3 kB view details)

Uploaded Source

Built Distribution

withings_api_cdt-2.3.0-py3-none-any.whl (15.3 kB view details)

Uploaded Python 3

File details

Details for the file withings_api_cdt-2.3.0.tar.gz.

File metadata

  • Download URL: withings_api_cdt-2.3.0.tar.gz
  • Upload date:
  • Size: 16.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.8.5 Windows/10

File hashes

Hashes for withings_api_cdt-2.3.0.tar.gz
Algorithm Hash digest
SHA256 1f8e011f38081ce7faef0000f40ec4cb803f75599d5ab775b556c300269d8886
MD5 7478e429c3f390e28cf90a4c0c408356
BLAKE2b-256 a1064369dff708e6655430c2bd6cfa34b9554a4078b90db9f91807ce5f4c4dfb

See more details on using hashes here.

File details

Details for the file withings_api_cdt-2.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for withings_api_cdt-2.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e6352ed36d06a4a14ab690da21b5c820e129d73d8fe8f1b4c329f12d595bd406
MD5 45eb1249076c9f07784b6efefc6cb650
BLAKE2b-256 8cf5a1ed4939306a0ed7bc78f2ecee49afb3d1861b6ddbd15a5d129b0473f660

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