- Docker
- Slack Account
Для того, чтобы сервис работал, необходим User-token от Slack. User-токен отличается от Bot-токена тем, что он начинается с xoxp-
, а не xoxb-
.
- Переходим на страницу Slack API
- Нажимаем на кнопку
Create New App
и выбираемFrom scratch
- Вводим название приложения и выбираем Workspace, в котором будет работать сервис
- Переходим во вкладку
OAuth & Permissions
в меню слева - В разделе
Scopes
добавляем следующие права:- Для раздела "Bot Token Scopes" добавляем права:
channels:history
channels:read
chat:write
chat:write.customize
chat:write.public
groups:history
groups:read
groups:write
- Для раздела "User Token Scopes" добавляем права:
channels:write
channels:read
chat:write
chat:write.customize
chat:write.public
groups:write
groups:read
- Для раздела "Bot Token Scopes" добавляем права:
- Вверху страницы нажимаем на кнопку
Install to Workspace
в разделе OAuth Tokens for Your Workspace и выбираем Workspace, в котором будет работать сервис, нажимая "Разрешить"
Необходимо авторизовать сервис от лица администратора вашего Workspace, чтобы сервис имел возможность удалять сообщения
- После этого раздел OAuth Tokens for Your Workspace должен содержать два токена: Bot User OAuth Access Token и User OAuth Access Token. Нам нужен User OAuth Access Token. Скопируйте его и сохраните в надежном месте.
- Склонировать репозиторий
- В файле по пути
connectors/slack/views.py
на строке 14 указать токен от Slack
Чтобы бот заработал окончательно, необходимо подключить Event Subscriptions. Для этого:
- Запускаем сервис командой
docker-compose up -d
- В зависимости от того, каким сервисом вы пользуетесь, настройте тунеллирование портов. Например, если вы используете ngrok, то вам нужно будет запустить команду
ngrok http 1338
и скопировать адрес, который будет выведен в консоль. - В разделе
Event Subscriptions
в меню слева включаемEnable Events
. - В поле
Request URL
вставляем адрес, который вы скопировали в пункте 2, чтобы получился адрес видаhttps://<your-domain>.ngrok.io/connectors/slack/
- В разделе
Subscribe to bot events
добавляем события:message.channels
message.groups
- Нажимаем на кнопку
Save Changes
Перейдите в ваш Workspace и добавьте бота в любой канал или группу, в котором вы хотите мониторить сообщения. После этого бот начнет удалять сообщения, которые попадают под фильтр.
Создание паттернов и просмотр истории удаленных сообщений доступны в админ-панели. Для этого перейдите по адресу http://<your-domain>:1338/admin/
и авторизуйтесь. Возможно, потребуется предварительно создать суперпользователя в базе данных.
Для этого запустите команду python manage.py createsuperuser
и следуйте инструкциям. Внутри docker-контейнера команда будет выглядеть так: docker-compose exec web python manage.py createsuperuser
После авторизации вы увидите следующие разделы:
DLP | Описание |
---|---|
Matches | Содержит историю отобранных сообщений и паттернов |
Messages | Содержит сообщения, которые были отобраны |
Patterns | Содержит паттерны, по которым происходит поиск |
Чтобы добавить новый шаблон поиска, нужно перейти в Patterns и нажать на кнопку Add Pattern
. В открывшемся окне введите шаблон в поле Fixture. Шаблон должен быть в формате регулярного выражения. После этого нажмите на кнопку Save
.
После этого все сообщения, которые будут содержать шаблон, будут попадать в раздел Matches. Он представляет из себя таблицу, в которой отображаются следующие данные:
Pattern | Message text |
---|---|
Шаблон, который был найден в сообщении | Сам текст сообщения |