Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vangorra/python_withings_api
Library for the Withings Health API
https://github.com/vangorra/python_withings_api
api python3 withings
Last synced: about 1 month ago
JSON representation
Library for the Withings Health API
- Host: GitHub
- URL: https://github.com/vangorra/python_withings_api
- Owner: vangorra
- License: mit
- Created: 2019-10-08T02:02:54.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2022-04-22T17:19:35.000Z (over 2 years ago)
- Last Synced: 2024-09-18T10:43:04.038Z (3 months ago)
- Topics: api, python3, withings
- Language: Python
- Homepage:
- Size: 521 KB
- Stars: 101
- Watchers: 9
- Forks: 34
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- my-awesome-starred - vangorra/python_withings_api - Library for the Withings Health API (Python)
README
# Python withings-api [![Build status](https://github.com/vangorra/python_withings_api/workflows/Build/badge.svg?branch=master)](https://github.com/vangorra/python_withings_api/actions?workflow=Build) [![Coverage Status](https://coveralls.io/repos/github/vangorra/python_withings_api/badge.svg?branch=master)](https://coveralls.io/github/vangorra/python_withings_api?branch=master) [![PyPI](https://img.shields.io/pypi/v/withings-api)](https://pypi.org/project/withings-api/)
Python library for the Withings Health APIWithings Health API
Uses OAuth 2.0 to authenticate. You need to obtain a client id
and consumer secret from Withings by creating an application
here:## 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.
```python
from withings_api import WithingsAuth, WithingsApi, AuthScope
from withings_api.common import get_measure_value, MeasureTypeauth = 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.
```bash
./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.
```bash
./scripts/build.sh
source ./venv/bin/activate
./scripts/integration_test.py --client-id --consumer-secret --callback-uri
```
The integration test will cache the credentials in a `/.credentials` file between runs. If you get an error saying
the access token expired, then remove that credentials file and try again.