tghw / trello-py

A Python wrapper for the Trello API
BSD 3-Clause "New" or "Revised" License
79 stars 30 forks source link

Python Trello API Wrapper

This library is a Python wrapper around the Trello REST API.

Requires Python 3.6 or later.

If you wish to use this with Python 2 or Python 3.5 or lower, please use version 0.9.4.

Getting Started

To use the Python API, first install it from PyPI using pip:

pip install trello

or from source:

python setup.py install

Once you have it installed, get an API key from https://trello.com/app-key.

>>> from trello import TrelloApi
>>> trello = TrelloApi(TRELLO_APP_KEY)
>>> trello.boards.get('4d5ea62fd76aa1136000000c')
{
    "closed": false, 
    "desc": "Trello board used by the Trello team to track work on Trello.  How meta!\n\nThe development of the Trello API is being tracked at https://trello.com/api\n\nThe development of Trello Mobile applications is being tracked at https://trello.com/mobile", 
    "id": "4d5ea62fd76aa1136000000c", 
    "idOrganization": "4e1452614e4b8698470000e0", 
    "name": "Trello Development", 
    "pinned": true, 
    "prefs": {
        "comments": "public", 
        "invitations": "members", 
        "permissionLevel": "public", 
        "voting": "public"
    }, 
    "url": "https://trello.com/board/trello-development/4d5ea62fd76aa1136000000c"
}

Because the Trello development board is public, we didn't need a user's token, but if we want to access private boards, we'll have to have one. We can get it by calling:

>>> trello.get_token_url('My App', expires='30days', write_access=True)
    'https://trello.com/1/authorize?key=TRELLO_APP_KEY&name=My+App&expiration=30days&response_type=token&scope=read,write'

If you send your user to the resulting URL, it will ask them to allow your app access to their account, and then it will give them a token (64-digit hex string) that they will pass back to your app.

>>> trello.set_token(user_token)

(Note: Trello does support OAuth, but the Python API does not have any support for it yet.)

Once you have set the user's token, all calls to the API will include that token, as if the user was logged in.