Building a simple bot using Slack's Events API in Python
This bot is an example implementation of building a Slack App with Slack's Python SDK, python-slackclient. We'll cover all the basic steps you'll need to create and configure your first Slack App in python.
PythOnBoarding Bot is designed to greet new users on your team and introduce them to some nifty features in Slack.
Let's go write some code. You got this! ✨
This example uses Python, specifically version 2.7 so you'll need to make sure you are using the correct version of Python. We'll also use a number of python packages you can install through pip.
- Python, the programming language we're going to use.
- Pip, the Python package manager we'll use for installing packages we need.
- Virtualenv or another tool to manage a virtual environment
Once you've installed Python, pip and virtualenv, you can install all additional
dependent libraries using pip and the requirements.txt
file included in this
project, including Flask, a web development micro
framework for Python and python-slackclient, a
Slack client for Python. 🐍
After you've cloned this repository locally, you'll want to create a virtual environment to keep the dependencies for this project isolated from any other project you may be working on.
If you're using virtualenv
run the following commands from the root of your
project directory:
virtualenv env
Then activate your new virtual environment:
source env/bin/activate
After that, you can install all the Python packages this project will need with this command:
pip install -r requirements.txt
Slack will be delivering events to your app's server so your server needs to be able to receive incoming HTTPS traffic from Slack.
If you are running this project locally, you'll need to set up tunnels for Slack to connect to your endpoints. Ngrok is an easy to use tunneling tool that supports HTTPS, which is required by Slack.
You'll likely want to test events coming to your server without going through the actions on your Slack team. Postman is a useful tool you can use to recreate requests sent from Slack to your server. This is especially helpful for events like user join, where the workflow to recreate the event requires quite a bit of set up.
- Section 1:
StealBuild This Bot 👈 - Section 2: Create a Slack App and Bot User
- Section 3: Subscribe to Events
- Section 4: App Credentials
- Section 5: Make it Go
Wondering what to do if you can't get this dang tutorial to work for you? The Slack Developer community is an awesome place to get help when you're confused or stuck. We have an excellent 'search first' culture and Slack is committed to improving our tutorials and documentation based on your feedback. If you've checked the Slack API documentation, reached the end of your google patience and found StackOverflow to be unhelpful, try asking for help in the Dev4Slack Slack team.
I'd love to improve this project, so if you've got some ideas 💡, feedback 🙋 or praise 💌 please file an issue, submit a PR or reach out to me through Github or on Twitter!