An open API service indexing awesome lists of open source software.

https://github.com/matsub/slashcommands

A tiny framework for slash commands of Slack.
https://github.com/matsub/slashcommands

japronto python slack

Last synced: about 2 months ago
JSON representation

A tiny framework for slash commands of Slack.

Awesome Lists containing this project

README

          

[![wercker status](https://app.wercker.com/status/b529bb3589c645bc2d0cc4c560acb7ee/s/master "wercker status")](https://app.wercker.com/project/byKey/b529bb3589c645bc2d0cc4c560acb7ee)

# slashcommands
A tiny framework for slash commands of Slack.

# Installation

with Python 3.6+

```sh
$ pip install slashcommands
```

# Usage
Create a program as below,

```python
from slashcommands import SlashCommands

TOKEN = '--- Your Verification Token Here ---'
app = SlashCommands(TOKEN, prefix='/slack/')

@app.route('/')
def hello(body):
return "hello!"

@app.route('/hey')
def foo(body):
response = {
"text": "What'up @{0} !!".format(body['user_name']),
"response_type": "in_channel",
}
return response

if __name__ == '__main__':
app.run(port=8080)
```

and run it on your server.

The argument `body` is the request from slack. This is typed as a `dict`
object. See the [Documentation of Slack](https://api.slack.com/slash-commands#how_do_commands_work)
for the structure of this request.

## Using modules
As your program gets longer, you may want to split it into several files.
To support it, each `SlashCommands` object can inherit another `SlashCommands`
object like,

```python
app = SlashCommands(TOKEN)
subapp = SlashCommands(TOKEN, prefix='/sub/')

@app.route('/')
def hello(body):
return "hello!"

@subapp.route('/')
def sub(body):
return "I'm subapp!"

app.install(subapp)
```

now `app` object has additional path `/sub/`.