Простой бот для слак чата. Подписывается на сообщение и реагирует на "приветЭ. Отправляет сообщения, может реагировать на них.
Скачайте репозиторий и установите необходимые пакеты
pip install -r requirements.txt
. Для подписки на ивенты чата потребуется сервер, в который сможет постучаться Slack. Для отладки удобно будет использовать ngrok.
Для начала регистрируемся в Slack и создаем рабочее пространоство. Далее создадим приложение в SlackAPI. Для этого идем по этому адресу. Нажимаем на кнопку Create an App.
Далее называем бота и выбираем рабочее пространство. После создания вашего приложения вам будет представлена следующая информационная панель приложения по умолчанию. На этой информационной панели вы будете управлять приложением, устанавливая разрешения, подписываясь на события, устанавливая приложение в рабочие пространства и т. д.
Чтобы ваше приложение могло отправлять сообщения на канал, вы должны предоставить ему разрешения на отправку сообщений. Для этого нажмите кнопку Permissions (Разрешения) на панели управления.
Прокрутите вниз страницу OAuth & Permissions (OAuth и разрешения), пока не найдете раздел Scopes (Области действия). Найдите подраздел Bot Token Scopes (Области действия токена бота) в области действия и нажмите кнопку Add an OAuth Scope (Добавить область действия OAuth).
Нажмите кнопку и введите chat:write
. Выберите это разрешение, чтобы добавить его для вашего бота. Это позволит приложению отправлять сообщения на каналы, к которым у него есть доступ. Для получения доступа к реакциям также добавьте reactions:write
.
Добавив необходимое разрешение и теперь можем установить приложение в рабочее пространство Slack. Прокрутите страницу OAuth & Permissions (OAuth и разрешения) вверх и нажмите кнопку Install App to Workspace (Установить приложение в рабочее пространство) сверху.
Нажмите эту кнопку и посмотрите, какие действия приложение может выполнять на канале. После этого нажмите кнопку Allow (Разрешить) для завершения установки.
После установки бота вы получите для вашего приложения токен доступа Bot User OAuth Access Token, который оно сможет использовать для выполнения действий в рабочем пространстве. Этот токен необходимо будет добавить в переменную окружения как SLACK_TOKEN.
В заключение добавьте новый бот в канал внутри вашего рабочего пространства. Если вы еще не создали канала, используйте канал #general
, который создается по умолчанию в вашем рабочем пространстве Slack. Найдите приложение в разделе Apps (Приложения) на панели навигации клиента Slack и нажмите на него. Затем откройте меню Details (Сведения) в правом верхнем углу. Если ваш клиент Slack открыт не в полноэкранном режиме, значок этого меню будет выглядеть как буква i
внутри окружности.
Чтобы завершить добавление приложения на канал, нажмите кнопку More (Дополнительно) со значком трех точек на странице сведений и выберите Add this app to a channel… (Добавить это приложение в канал…). Введите название канала в открытое модальное окно и нажмите Add (Добавить).
Теперь нужно добавить приложение как авторизованный обработчик. Перейдите в раздел Basic Information (Базовая информация) вашего приложения в пользовательском интерфейсе Slack. Прокручивайте экран вниз, пока не найдете раздел App Credentials (Полномочия приложения).
Скопируйте секретную подпись (Signing Secret) и экспортируйте ее в переменную среды SLACK_EVENTS_TOKEN
. Это все токены необходимые для работы в приложении.
Предоставьте своему приложению необходимые разрешения для мониторинга сообщений и реагирования на них. Откройте раздел Event Subscriptions (Подписка на события) в боковой панели пользовательского интерфейса и нажмите кнопку Enable Events (Активировать события).
После этого введите свой IP-адрес, порт и конечную точку /api/msg
в поле Request URL (URL-адрес запроса). Не забудьте указать префикс протокола HTTPS. Slack попытается выполнить подключение к указанной конечной точке. После успешного подключения вы увидите зеленую отметку со словом Verified (Проверено).
Затем откройте раздел Subscribe to bot events (Подписка на события ботов) и добавьте для вашего приложения разрешение message.channels
. Это позволит вашему приложению получать сообщения от канала и обрабатывать их.
После этого останется сохранить изменения и переустановить приложение в Slack.