Slack — это удобный и популярный инструмент, который вы можете дополнить собственными командами, адаптированными для вашей организации.
Slack — это инструмент, который позволяет командам общаться и сотрудничать. Одной из его ключевых особенностей является использование слэш-команд. Эти команды запускают определенные действия или интеграции внутри платформы.
Хотя Slack предоставляет вам несколько встроенных команд с косой чертой, вы можете создавать собственные команды с помощью Slack API. Затем вы можете настроить пользовательскую команду для выполнения определенной задачи, когда пользователь запускает ее.
Зачем создавать пользовательскую команду Slash в Slack?
Встроенные команды косой черты Slack могут не соответствовать конкретным потребностям вашей команды или организации. Создавая пользовательские команды с косой чертой, вы можете создать более персонализированный опыт для своей команды. Это, в свою очередь, увеличивает вовлеченность команды.
Настройка приложения Slack
Для выполнения вам должно быть удобно
базовое использование Slack. Войдите в свою учетную запись Slack в браузере и создайте новую рабочую область. Вы будете использовать это рабочее пространство для тестирования своих приложений, прежде чем использовать их в рабочем пространстве вашей команды.Откройте другую вкладку и перейдите к Веб-сайт Slack API.
Нажать на Создать приложение кнопка. На следующей появившейся странице выберите вариант создания приложения. С нуля.
Назовите приложение и выберите рабочую область, в которой оно будет работать.
Нажмите на Создать приложение кнопка. Это перенаправит вас на страницу, содержащую основную информацию о вашем приложении.
В разделе возможностей перейдите к OAuth и разрешения функцию, затем прокрутите вниз до Области действия токена бота. Добавить чат: пишите масштаб для вашего приложения. Эта область позволит вашему приложению отправлять сообщения в рабочую область.
Прокрутите вверх до Токены OAuth для вашей рабочей области раздел и нажмите кнопку Установить в рабочую область кнопка.
На следующей появившейся странице нажмите кнопку Позволять кнопка. Это установит приложение в вашей рабочей области.
Создание пользовательской косой черты с помощью Slack API
После настройки приложения Slack вам необходимо создать пользовательскую команду для задачи, которую вы хотите выполнить. Например, слэш-команда, возвращающая пользователю шутку. Перейдите к Слеш-команды особенность. Нажать на Создать новую команду кнопка.
Заполните Команда, URL-адрес запроса, и Краткое описание команды, которую вы хотите создать. URL-адрес запроса — это конечная точка, на которую Slack отправляет запрос POST, когда пользователь запускает команду. Используйте URL-адрес локального хоста в качестве заполнителя; вы переключите этот URL позже.
Нажмите на Сохранять. Когда вы сохраняете, Slack автоматически добавляет область команд для вашего приложения. Эта область позволяет вашему приложению добавлять ярлыки и команды косой черты, которые могут использовать люди в вашей рабочей области. Изменение областей потребует переустановки приложения. Нажать на переустановите ваше приложение кнопка.
На открывшейся странице нажмите «Разрешить переустановку приложения в рабочей области».
Настройка поведения команды Slash
Запустите любую Python IDE. Создайте новую виртуальную среду. Создайте новый файл Python и новый файл .env. На терминале выполните следующую команду, чтобы установить необходимые библиотеки.
pip install python-dotenv запрашивает Flask slack-bolt
python-dotenv библиотека позволит вам загрузить переменные среды в файл .env. Запросы библиотека позволяет делать HTTP-запросы и Колба обрабатывает входящие HTTP-запросы и возвращает ответы. Слабый болт обрабатывает входящие запросы Slack.
Откройте файл .env и создайте две переменные среды. Назови их BOT_TOKEN и SIGNING_SECRET соответственно. Перейдите на веб-сайт Slack API. Под вашим приложением Основная информация скопируйте секрет подписи и используйте его для инициализации переменной BOT_TOKEN. Перейдите к функции OAuth & Permissions и скопируйте токен OAuth пользователя бота. Используйте его для инициализации переменной SIGNING_SECRET.
Токен бота — это уникальный идентификатор, который аутентифицирует ваше приложение с помощью Slack API при выполнении вызовов API. Секрет подписи подтверждает, что входящие запросы к вашему приложению поступают из Slack.
Полный исходный код доступен в Репозиторий GitHub.
Импортируйте необходимые библиотеки и модули.
Импортировать Операционные системы
от pathlib Импортировать Путь
от дотенв Импортировать load_dotenv
Импортировать Запросы
от колба Импортировать Фласк, запрос, jsonify
от slack_bolt Импортировать Приложение
от slack_bolt.адаптер.фласк Импортировать SlackRequestHandler
Создайте новый экземпляр приложения Flask.
приложение = Фляга (__имя__)
Загрузите переменные среды из файла .env, используя load_dotenv() функция.
env_path = Путь('.') / '.env'
load_dotenv (dotenv_path=env_path)
Создайте новый экземпляр приложения Slack, используя Приложение класс из библиотеки slack_bolt.
slack_app = приложение(
токен=os.environ['BOT_TOKEN'],
signing_secret=os.environ["ПОДПИСАНИЕ_СЕКРЕТ"]
)
Создайте функцию обработчика маршрута, которая обрабатывает входящие запросы к /slack/command конечная точка. Когда конечная точка получает ПОЧТА запрос, он анализирует данные тела запроса. Затем он проверяет, является ли команда /joke. Если это так, он вызывает получить_шутка() функция и возвращает ответ JSON в Slack с результатом команды.
@app.route("/slack/command", методы=["POST"])
дефкоманда():
# Разбираем данные тела запроса
данные = запрос.форма# Вызов соответствующей функции на основе команды косой черты
если данные["команда"] == "/шутить":
сообщение = get_joke()
еще:
сообщение = f"Неверная команда: {данные['команда']}"
# Вернуть ответ в Slack
возвращаться jsonify({"текст": сообщение})
Создайте функцию, которая отправляет запрос GET в icanhazdadjoke API для получения случайной шутки в формате JSON. Затем он возвращает шутку в виде строки.
дефget_шутка():
URL = " https://icanhazdadjoke.com/"
заголовки = {"Принимать": "приложение/json"}
response = request.get (url, headers=headers, timeout=5)
шутка = ответ.json () ["шутить"]
возвращаться шутить
Создайте новый экземпляр SlackRequestHandler объект, который будет обрабатывать входящие запросы от Slack.
обработчик = SlackRequestHandler (slack_app)
Проверьте, запускается ли скрипт напрямую, и если это так, запустите приложение Flask на порту 5000.
если __имя__ == "__основной__":
# Запустите приложение Flask на порту 5000
app.run (порт=5000, отладка =Истинный)
Запустите программу, чтобы запустить сервер, работающий на локальном хосте.
Чтобы программа могла общаться со Slack, вам нужен URL-адрес, к которому она может получить доступ через Интернет. Загрузите и запустите нгрок. Программное обеспечение ngrok позволяет создать безопасный общедоступный URL-адрес. который туннелирует трафик на веб-сервер, работающий на вашем компьютере.
Выполните следующую команду, чтобы получить общедоступный URL-адрес:
нгрок http 5000
На изображении ниже показан общедоступный URL-адрес на ngrok, выделенный белым цветом.
Скопируйте URL-адрес и перейдите на веб-сайт Slack API. Нажать на Слеш-команды особенность. Отредактируйте команду /joke и замените заполнитель URL-адреса запроса своим общедоступным URL-адресом. Добавьте /slack/events в конце URL-адреса, чтобы указать на вашу конечную точку.
Перейдите в свое рабочее пространство, затем введите и отправьте команду /joke. В ответ вы должны увидеть шутку:
Ознакомьтесь с другими функциями Slack
В Slack есть множество функций, помимо команд Slash. Знакомство с этими функциями позволит вам понять, как они работают.
Затем вы можете искать способы настроить их в соответствии с требованиями вашего рабочего пространства. Это повысит продуктивность вашей команды.