channels-slack-notifications

Send notification to slack using channels


Keywords
django, channels, slack
License
MIT
Install
pip install channels-slack-notifications==0.0.1

Documentation

Channels Slack Notificaitons

If you want to asyncronously send low priority messages to a Slack channel using Django Channels this is the 3rd party library for you.

Partially inspired by django-slack https://github.com/lamby/django-slack. Adding support for channels and simplying the interface.

Requirements

  1. Django 1.8+
  2. channels
  3. requests

Quick Start

Add to INSTALLED_APPS and set your slack token:

INSTALLED_APPS = (
  # ...
  'channels_slack_notifications',
  # ...
)

CHANNELS_SLACK_TOKEN = 'yourtokenhere'

You can generate a tokens here: https://api.slack.com/web#authentication

Add to your routing.py:

from channels.routing import include
from channels_slack_notifications.routing import slack_routing

channels_routing = [
    include(slack_routing),
]

Send your first notification:

from channels import Channel

message = dict(
    text = 'this is a test',
)
Channel('slack-notifications').send(message)

This uses a bunch of defaults which you can override per setting, or just in the message dict.

You can use this management command to test your settings:

python manage.py test_slack_notification

Settings

CHANNELS_SL ACK_TOKEN ~~~~~~~~~~~~~~~~~~~~~~~~

Default: None

Your Slack authentication token.

You can generate a tokens here: https://api.slack.com/web#authentication

CHANNELS_SLACK_CHANNEL

Default: #general

Use this setting to set a default channel of the room the message should appear in.

You can override on a per-message level by specifying channel in your message dict.

CHANNELS_SLACK_USERNAME

Default: bot

Use this setting to set a default name the message will appear be sent from.

You can override on a per-message level by specifying username in your message dict.

CHANNELS_SLACK_ICON_EMOJI

Default: :robot:

Use this setting to set a default icon emoji.

You can override on a per-message level by specifying icon_emoji in your message dict.

CHANNELS_SLACK_BACKEND

Default: 'channels_slack_notifications.backends.console'

A string pointing to the eventual backend class that will actually send the message to the Slack API.

Use 'channels_slack_notifications.backends.default' in product which uses the requests library.