Git Product home page Git Product logo

slack-python-onboarding-tutorial's Introduction

pythOnBoarding Bot

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.

onboarding

Let's go write some code. You got this! โœจ

Technical Requirements

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.

Here's a list of what we'll need:
  • 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
Server Requirements

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.

Let's get started ๐ŸŽ‰

Further Reading and Getting Help

Documentation

Slack Documentation
Documentation for Tools

Where to Find Help

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.

Feedback

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!

slack-python-onboarding-tutorial's People

Contributors

karishay avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.