Создайте этого слабого бота и придайте своему каналу более дружелюбную атмосферу.

Приветствуя новых пользователей на вашем канале, они чувствуют себя как дома, но отслеживать каждого пользователя, который присоединяется, может быть утомительной задачей. Вот тут-то и появляется приветственный бот Slack. Бот отправляет персонализированное приветственное сообщение каждому новому пользователю канала. Он всегда онлайн, поэтому не будет поздних приветственных сообщений.

Вы узнаете, как настроить учетные данные своего бота, прослушивать события в Slack и отправлять сообщения пользователям.

Создание Slack-бота и получение его API-токена

Создать Слабый аккаунт или войдите в существующую. Затем создайте новое рабочее пространство Slack чтобы протестировать бота перед его установкой в ​​активное рабочее пространство.

Войдите в новое рабочее пространство. Slack автоматически создает для вас случайный и общий канал.

Обратите внимание на раздел «Приложение» в левом нижнем углу рабочей области. Здесь наш бот появится, когда вы его создадите. Перейдите к Веб-сайт Slack API.

instagram viewer

Нажмите на Создать приложение. Создать приложение С нуля в появившемся окне.

Назовите свое приложение и выберите рабочее пространство, в котором вы хотите его разработать.

Затем нажмите на Создать приложение кнопка. Нажатие перенаправит вас на страницу, содержащую основную информацию о вашем приложении. Обратите внимание на секрет подписи под учетными данными приложения. Ваш бот будет использовать секрет подписи, чтобы убедиться, что событие пришло из Slack и не было изменено во время передачи.

Перейдите к функции OAuth и разрешений.

В разделе «OAuth и разрешения» перейдите к разделу «Области токена бота». Здесь вы добавите разрешения того, что ваш бот может делать в вашей рабочей области. Добавить пользователи: читать объем. Эта область позволит вашему боту просматривать людей в вашей рабочей области. Кроме того, добавьте чат: пишите область, которая позволит вашему боту отправлять сообщения в рабочую область.

Вернитесь к основной информации о вашем боте и нажмите Установить в рабочую область.

Нажмите «Разрешить» на следующей странице. Теперь вы закончили установку бота в свое рабочее пространство. Перейдите к функции OAuth и разрешений. Обратите внимание на токен OAuth пользователя бота, который Slack генерирует после установки. Бот будет виден в разделе приложений вашего рабочего пространства.

Теперь, когда вы установили бота на свое рабочее место, вы можете написать код для управления им.

Подготовка вашей среды

Вам необходимо ознакомиться с основы Python чтобы следовать этим примерам кода.

Создайте новую виртуальную среду и .env файл. Вы будете использовать файл .env для хранения своего токена и секрета подписи, которые вам необходимо сохранить в тайне. Вы не должны загружать файл .env на какую-либо общедоступную платформу.

Выполните следующую команду в терминале, чтобы установить необходимые библиотеки:

pip install slack-sdk pathlib dotenv flask slackeventsapi

Библиотека slack-sdk предоставит вам инструменты для создания приложений и интеграций Slack, включая методы API, клиенты веб-API и OAuth. pathlib и dotenv помогут вам загрузить переменные среды. flask поможет вам обрабатывать HTTP-запросы и ответы. slackeventsapi предоставит вам прослушиватель событий, который получает и обрабатывает события из Slack.

Полный исходный код доступен в Репозиторий GitHub.

Импорт необходимых библиотек

Создайте новый файл Python и начните с импорта ранее установленных библиотек, чтобы вы могли использовать их функции в своем коде.

Импортировать slack_sdk как вялый
Импортировать Операционные системы
от pathlib Импортировать Путь
от дотенв Импортировать load_dotenv
от колба Импортировать Колба
от Слакевенцапи Импортировать SlackEventAdapter

Модуль ОС Python поставляется с языком, поэтому вам не нужно его устанавливать. SlackEventAdapter — это класс из модуля slackeventsapi, который обрабатывает события из Slack API.

Настройка Slack-бота

Создайте две переменные в файле .env. Назовите один SLACK_BOT_TOKEN и назначьте ему токен OAuth пользователя бота. Назовите другой SLACK_SIGNING_SECRET и назначьте ему секрет подписи. Вернитесь к файлу Python и создайте объект Flask. Затем загрузите переменные среды из файла .env с помощью функции load_dotenv из модуля dotenv.

приложение = Фляга (__имя__)
env_path = Путь('.') / '.env'
load_dotenv (dotenv_path=env_path)

Создайте экземпляр slack_event_adapter. Он будет обрабатывать события из Slack API, используя переменную среды SLACK_SIGNING_SECRET для аутентификации запросов.

slack_event_adapter = SlackEventAdapter (os.environ['SLACK_SIGNING_SECRET'],
'/провисание/события', приложение)

/slack/events — это конечная точка, которую Slack API будет использовать для отправки событий.

Создайте экземпляр WebClient, который будет отправлять сообщения в Slack API. Выполните вызов API, чтобы получить идентификатор бота.

клиент = слабина. WebClient (токен=os.environ['SLACK_BOT_TOKEN'])
BOT_ID = client.api_call("автор.тест")['ID пользователя']

Настройте сообщение, которое вы будете отправлять новым пользователям, присоединившимся к каналу. Инициализируйте пустой набор, который будет отслеживать приветствуемых пользователей.

ПРИВЕТСТВИЕ_СООБЩЕНИЕ = "Здравствуйте, {user_name}, добро пожаловать на {channel_name}" \
"канал! Мы рады видеть вас здесь».
приветствуемые_пользователи = установить ()

Вы можете настроить приветствие по своему вкусу.

Создание функции для обработки события «Член присоединился к каналу»

Настройте прослушиватель событий. Он будет прослушивать событие member_joined_channel.

@slack_event_adapter.on('member_joined_channel')

Определите функцию, которую вы будете вызывать, когда пользователь присоединяется к каналу. Используйте функцию для извлечения идентификатора пользователя и идентификатора канала из данных события. Проверьте, является ли пользователь новым на канале. Если нет, получите информацию о пользователе и канале с помощью класса WebClient. Создайте персонализированное приветственное сообщение. Отправить приветствие на канал

дефhandle_member_joined_channel(данные_события):
user_id = данные_события['событие']['пользователь']
идентификатор_канала = данные_события['событие']['канал']

# Отправлять приветственное сообщение, только если пользователь новый
если ID пользователя нетв приветствовал_пользователей:
welcomed_users.add (user_id)

user_info = client.users_info (user=user_id)
имя_пользователя = информация_пользователя['пользователь']['имя']

channel_info = client.conversations_info (channel=channel_id)
имя_канала = информация_канала['канал']['имя']

приветствие = GREETING_MESSAGE.format (user_name=user_name,
имя_канала=имя_канала)

client.chat_postMessage (channel=channel_id, text=приветствие)

Event_data содержит всю информацию о событии, в котором пользователь присоединился к каналу.

Запустите приложение Flask и запустите скрипт. Если запускается как основная программа (не импортируется как модуль), запустите в режиме отладки и прослушивайте порт 5000.

если __имя__ == "__основной__":
app.run (отладка =Истинный, порт =5000)

Режим отладки автоматически перезагружает приложение при внесении изменений в код. Не используйте режим отладки в производственной среде, он может раскрыть конфиденциальную информацию и сделать ваше приложение уязвимым для атак. Запустите свое приложение. Он будет работать как локальный сервер на порту 5000.

Соединение логики с вашим ботом

Создав логику, теперь вам нужно подключиться к боту в вашей рабочей области. Это позволит ему использовать эту логику для выполнения операций в вашей рабочей области. Начните с загрузки и запуска Нгрок. Ngrok поможет вам вывести ваш локальный веб-сервер в Интернет.

После его запуска используйте следующую команду, чтобы сопоставить адрес вашего локального сервера с адресом Ngrok.

нгрок http 500

Скопируйте адрес Ngrok, который сопоставляется с вашим локальным хостом.

Перейдите на веб-сайт Slack API. Под Подписки на события функция, включить события. Под URL-адрес запроса введите адрес Ngrok, а затем /slack/events. Это укажет на вашу конечную точку.

Затем подпишитесь на событие member_joined_channel. Это будет уведомлять вашего бота каждый раз, когда пользователь присоединяется к каналу. Нажмите на Сохранить изменения. Slack автоматически добавит области, необходимые для подписки на это событие. Каждый раз, когда вы меняете область действия, вам придется переустанавливать приложение в рабочей области.

Нажмите на переустановить приложение.

Тестирование вашего бота

Перейдите на свое рабочее место. Перейдите на канал, на котором вы хотите использовать бота. Отправьте прямое сообщение боту. Например, @Welcoming Bot. Появится приглашение добавить бота на канал. Нажмите добавить.

Теперь каждый раз, когда новый пользователь присоединяется к каналу, бот будет отправлять приветственное сообщение.

На изображении выше показано, как бот приветствует нового пользователя на канале.

Максимально эффективное использование вашего Slack Workspace

Боты Slack — не единственный способ расширить функциональность платформы обмена сообщениями Slack. Другой метод — интегрировать сторонние инструменты со Slack. Они обеспечивают дополнительную функциональность внутри платформы.

Ознакомьтесь с этими интеграциями, так как они повысят вашу продуктивность в Slack.