Skip to content

Latest commit

 

History

History
96 lines (73 loc) · 2.62 KB

README.md

File metadata and controls

96 lines (73 loc) · 2.62 KB

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