anphase / pyexo

Python API wrapper for MYOB EXO

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PyExo

PyExo is a Python API for accessing the REST API provided by the MYOB EXO accounting tool. It allows access to local, remote and cloud applications.

Quickstart:

Include the library folder with your application and import it.

Authentication

All requests made to the MYOB EXO API require authentication headers that contain your EXO username, password, a developer key and an EXO token generated using the EXO Config application in your installation. You can find details for how to get these from the MYOB EXO Developer pages:MYOB EXO API page.

Environment variables

For convenience you can setup the following environment variables: EXO_USERNAME, EXO_PASSWORD, EXO_API_KEY, MYOB_EXO_TOKEN. For example, in Linux you could add these variables into ~./bashrc and for MacOS into ~/.bash_profile as shown below. You can also specify the environment variables in Windows. Note that you will need to reload the terminal for these to come into effect e.g using

$ . ~/.bashrc

or by restarting the terminal.

$ export MYOB_EXO_USERNAME=demo
$ export MYOB_EXO_PASSWORD=DEMO
$ export EXO_API_KEY=ABCta353c5R6YXRvcjo=
$ export EXO_TOKEN=123AA353c5R6YXRsTAQ18*%

You can also set the environment variables from a configuration file as below:

Create a '.env' file in the root directory of your application and configure it as shown below:

[DEFAULT]
EXO_IP = <exo server ip>
EXO_PORT = <api port>
[AUTH]
EXO_USERNAME = <your exo username>
EXO_PASSWORD = <you exo password>
EXO_API_KEY = <key>
EXO_TOKEN = <token>

e.g.

[DEFAULT]
EXO_IP = 192.168.0.1
EXO_PORT = 8888
[AUTH]
EXO_USERNAME = demo
EXO_PASSWORD = DEMO
EXO_API_KEY = ABCta353c5R6YXRvcjo=
EXO_TOKEN = 11111111111122222222222222222333333333...

Setting the Authentication Headers

Setting the authentication headers is done when initialising an instance of the API. First import the modules:

$ from exo import Exo
$ from exo.auth import Credentials

If you have the environment variables setup then:

$ credentials = Credentials()

Otherwise you can enter them manually:

$ credentials = Credentials(<username>, <passoword>, <key>, <token>)

Then pass them into an instance of the Exo class:

$ exo = Exo(credentials)

Using the EXO API

The API is a work in progress, it returns dictionaries exactly as provided by the EXO API.

TODO

Add tests and examples

Requirements

This project requires the requests module for the API calls

About

Python API wrapper for MYOB EXO

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Python 100.0%