A Django app to help integrate Slack
Project description
Django Slack Integration
This application helps you to integrate your existing Django application with Slack.
It provides you with
- Models - needed to keep information from Slack API
- Decorators - help you to write implementation of your Slack endpoints
- Authorisation backend - allows you to pair your existing user model with your Slack users
- Views - OAuth callbacks for "Add To Slack" and "Login With Slack" actions
Installation
-
Add 'slack_app' to your INSTALLED_APPS setting like this:
INSTALLED_APPS = [ ... 'slack_app', ... ]
-
Include the urls in your project
urls.py
like this:path('slack/', include('slack_app.urls')),
-
Run
python manage.py migrate
to create theslack_app
models. -
Add
slack_app.auth_backends.SlackAuthenticationBackend
to yourAUTHENTICATION_BACKENDS
AUTHENTICATION_BACKENDS = [ 'django.contrib.auth.backends.ModelBackend', 'slack_app.auth_backends.SlackAuthenticationBackend', ]
-
Update your
settings.py
SLACK_CLIENT_ID="" SLACK_CLIENT_SECRET="" SLACK_SIGNING_SECRET="" SLACK_LOGIN_OAUTH_REDIRECT_URL="" SLACK_INSTALL_OAUTH_REDIRECT_URL=""
-
Add following URLs to your Slack app's Redirect URLs (OAuth & Permissions)
<your_host>/slack/oauthcallback/ <your_host>/slack/login/
-
(Optional) Put
<your_host>/slack/interactivity/
as your Request URL inInteractive Components
section -
(Optional) Configure your Slash commands's Request URL as
<your_host>/slack/commands/<command_name>/
Usage
Slack commands
If you want to create a new Slack command with name /example
, configure your Request URL as <your_host>/slack/commands/example/
and put the following code into slack.py
inside your app's directory.
@slack_command('example', require_linked_account=True)
def scrumie_staging_command(request, slack_user_mapping, slack_workspace):
print(slack_user_mapping, slack_workspace)
return JsonResponse({
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "Hello _world_"
},
}
],
"text": "Hello World"
})
Slack Interactivity
Put the following to your slack.py
inside your app's directory.
@slack_interactivity('block_actions')
def process_block_actions(payload):
print('>>>>', payload)
return HttpResponse()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file django-slack-app-1.0.40.tar.gz
.
File metadata
- Download URL: django-slack-app-1.0.40.tar.gz
- Upload date:
- Size: 11.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b0aa97715171b229f1db6d5894ac0b93923fe91b73b41db90421315afc7ad21 |
|
MD5 | d973d65f8b9a341e27156fb41d71c56f |
|
BLAKE2b-256 | 90cbacdac7ecbb79f376fded591333ecafaf100eb2fbaae08edc54445e008e46 |
File details
Details for the file django_slack_app-1.0.40-py3-none-any.whl
.
File metadata
- Download URL: django_slack_app-1.0.40-py3-none-any.whl
- Upload date:
- Size: 15.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 44d8995396756c1ecdf373efb23adfbf6f4b337768d88dcbe3d02bfd2e964e80 |
|
MD5 | e8e9b8f19c2d6a5b13896be13f6042d6 |
|
BLAKE2b-256 | bfd99caa2fe57a3e4a732d57980dd9be4876a7f789ed723215bc7324048853d9 |