/əˈslæk/
aSlack is a lightweight, asynchronous wrapper for Slack's Web and Real-Time Messaging (RTM) APIs, designed to allow the easy development of Slack tools and bots in Python. It defines two principal components:
SlackApi
- a wrapper around the Web API; andSlackBot
- a messaging bot built on top of the RTM API.
aSlack uses asyncio with the async
and await
syntax, so is only
compatible with Python versions 3.5 and above.
Asynchronous HTTP and WebSocket functionality is provided by aiohttp (version 0.15 and above required for out-of-the-box WebSocket client support).
aSlack's documentation is available on PythonHosted.
aSlack is available through the Python Package Index, PyPI, you can install it with:
pip install aslack
Alternatively, clone or fork the repository and use e.g.:
python setup.py develop
to install locally for development. In this case, you should also install the
development dependencies (ideally in a virtualenv
) using:
pip install -r requirements.txt
The test suite can be run using py.test
directly or by running:
python setup.py test
in which case pylint
will also be run to check the code quality.
Additionally, a demo test for the Halliwell example can be run by setting the
environment variable TMDB_API_TOKEN
.
See the /examples
directory for examples of the kinds of bots that you can
build with aSlack.
Based on both aSlack and aTMDb, Halliwell is a bot that can provide
information on movies or actors and find overlaps. Two environment variables,
SLACK_API_TOKEN
and TMDB_API_TOKEN
, are required to run this example,
and configuration for easy deployment to Cloud Foundry is provided.