exist 0.1.9.1
Exist API client implementation
License: Apache 2.0

python-exist
============

Exist API Python Client Implementation


Requirements
============

* Python >= 2.6, Python >= 3.2, or PyPy. You can download it from https://www.python.org/
* Pip. If you have Python >= 2.7.9 or >= 3.4 then you already have ``pip``. Otherwise, please follow these instructions : https://pip.pypa.io/en/latest/installing.html


Installing
==========

Once you have satisfied the requirements listed above, install by running the
following command from them terminal:

    pip install exist


Quick Start
===========

Install with ``pip install exist``

python-exist can be used with one of three authorization types; basic, oauth, or an api_token

To use basic authorization and store the returned token, add your "username" and "password" in the following
command:

    exist authorize --username=<username> --password=<password>

If you already have a token, add it to the following command:

    exist authorize --api_token=<token>

To use OAuth authorizations and store the returned token add your "App key", "App secret" and "Redirect URL" (optional) in the following
command (Note: this requires app to registered directly with Exist):

    exist authorize --client_id=<app_key> --client_secret=<app_secret> --redirect_uri=<redirect_uri>

That will save the necessary credentials for making further API calls to a file
called "exist.cfg". These credentials should be kept private. You can use same
the command-line client to access everything in the
Exist API (http://developer.exist.io). You can also access the
same resources using the Python API:

    >>> from exist import Exist
    >>> exist = Exist(<client_id>, <client_secret>, <access_token>)
    >>> print(exist.user())
    {
        "id": 1,
        "username": "josh",
        "first_name": "Josh",
        "last_name": "Sharp",
        "bio": "I made this thing you're using.",
        "url": "http://hellocode.co/",
        "avatar": "https://exist.io/static/media/avatars/josh_2.png",
        "timezone": "Australia/Melbourne",
        "local_time": "2020-07-31T22:33:49.359+10:00",
        "private": false,
        "imperial_units": false,
        "attributes": [
            {
                "group": "steps",
                "priority": 1,
                "items": [
                    {
                        "attribute": "steps",
                        "label": "Steps",
                        "value": 258,
                        "service": "Fitbit",
                        "priority": 1,
                        "private": false,
                        "value_type": 0,
                        "value_type_description": "Integer"
                    },
                    {
                        "attribute": "floors",
                        "label": "Floors",
                        "value": 2,
                        "service": "Fitbit",
                        "priority": 2,
                        "private": false,
                        "value_type": 0,
                        "value_type_description": "Integer"
                    }
                ]
            }
        ]
    }

More commands are available as per the help section of the exist command from ``exist --help``


Roadmap
=======
* Tests (next)
* Write API connectivitiy (in progress)