A Django app for handling Slack webhooks
Project description
django-slack-utils

Django-slack-utils is helper application to handle Slack requests.
It supports verification through HTTP_X_SLACK_SIGNATURE
and HTTP_X_SLACK_REQUEST_TIMESTAMP
.
Installation
Add the following to your settings.py
INSTALLED_APPS = [
...
'slack_utils',
]
SLACK_SIGNING_SECRET = 'your signing secret from Slack'
Add the following to your urls.py
from django.conf.urls import include
from django.urls import path
urlpatterns = [
...
path('slack/', include('slack_utils.urls')),
]
Usage
View decorator
The @slack_view
decorator adds CSRF exempt and verification to your function-based django view.
from slack_utils.decorators import slack_view
from django.http import HttpResponse
@slack_view
def sample_view(request, *args, **kwargs):
# your logic
return HttpResponse("Hello!")
Class-based view
The SlackView
base class adds CSRF exempt and verification to your class-based django view.
from slack_utils.views import SlackView
from django.http import HttpResponse
class SampleView(SlackView):
def post(self, request, *args, **kwargs):
# your logic
return HttpResponse("Hello!")
Slash commands
To handle Slack slash commands, point the command URL to /slack/commands/
.
Now just add a handler function to slack.py
module of your app.
from slack_utils.decorators import slack_command
@slack_command('/test')
def test_command(text, **kwargs):
# your logic
return "Hello!" # or {'text': "hello!"}
**kwargs
would get the rest of the data from Slack request
Events API
Point Slack events API to the /slack/events/
.
Subscription can be done in two ways:
Receiver decorator
Put them into slack.py
of your app or make sure it's loaded once.
from slack_utils.decorators import slack_receiver
@slack_receiver('reaction_added')
def on_reaction_added(event_data, **kwargs):
# your logic
Signal
from slack_utils.signals import event_received
from django.dispatch import receiver
@receiver(event_received)
def on_event_received(sender, event_type, event_data, **kwargs):
if event_type == 'reaction_added':
# your logic
# your other logic
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django-slack-utils-0.3.1.tar.gz
.
File metadata
- Download URL: django-slack-utils-0.3.1.tar.gz
- Upload date:
- Size: 5.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
e03b6be896d443f4580210546fa96aeef6becfc9e2cdbe720dbe2ab935c4a0e0
|
|
MD5 |
e478536ba9060484b903dce40e76dbc9
|
|
BLAKE2b-256 |
74cf02dd783e9507ca3af6b74ef41ea25b75160c87efb3038d095b195d4e1e75
|