Skip to content

Nikita7x/fvrO35vxGLX

Repository files navigation

Требования

  • Docker
  • Slack Account

Подготовка

Получение токена Slack

Для того, чтобы сервис работал, необходим User-token от Slack. User-токен отличается от Bot-токена тем, что он начинается с xoxp-, а не xoxb-.

Как получить User-токен:

  1. Переходим на страницу Slack API
  2. Нажимаем на кнопку Create New App и выбираем From scratch
  3. Вводим название приложения и выбираем Workspace, в котором будет работать сервис
  4. Переходим во вкладку OAuth & Permissions в меню слева
  5. В разделе 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
  6. Вверху страницы нажимаем на кнопку Install to Workspace в разделе OAuth Tokens for Your Workspace и выбираем Workspace, в котором будет работать сервис, нажимая "Разрешить"

❗️Важно

Необходимо авторизовать сервис от лица администратора вашего Workspace, чтобы сервис имел возможность удалять сообщения

  1. После этого раздел 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. Для этого:

  1. Запускаем сервис командой docker-compose up -d
  2. В зависимости от того, каким сервисом вы пользуетесь, настройте тунеллирование портов. Например, если вы используете ngrok, то вам нужно будет запустить команду ngrok http 1338 и скопировать адрес, который будет выведен в консоль.
  3. В разделе Event Subscriptions в меню слева включаем Enable Events.
  4. В поле Request URL вставляем адрес, который вы скопировали в пункте 2, чтобы получился адрес вида https://<your-domain>.ngrok.io/connectors/slack/
  5. В разделе Subscribe to bot events добавляем события:
    • message.channels
    • message.groups
  6. Нажимаем на кнопку 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
Шаблон, который был найден в сообщении Сам текст сообщения

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published