Инструкция: Делаем Простого Бота Для Slack В Облаке

  • Автор темы Hrd86
  • Обновлено
  • 22, Nov 2024
  • #1

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

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



Инструкция: Делаем Простого Бота Для Slack В Облаке

Для создания бота нам понадобятся аккаунты в Яндекс.

Облаке и Slack.



Шаг 1. Создайте приложение в Slack.

Войдите в Slack и перейдите в панель .

нажать на кнопку Создать приложение , выбирать С нуля .

Введите название нашего приложения — ServerlessBotApp и выберите рабочую область, для пользователей которой будет работать наш бот.

Инструкция: Делаем Простого Бота Для Slack В Облаке

Теперь нам нужно дать нашему боту разрешение писать в чат. Перейдите в раздел OAuth & Permissions и в подразделе Bot Token Scopes нажмите кнопку Добавьте область OAuth .



Инструкция: Делаем Простого Бота Для Slack В Облаке

После того, как мы дали разрешение, перейдите в раздел «Токены OAuth для вашей рабочей области» и нажмите кнопку Установить в рабочую область , а потом Позволять .

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



Инструкция: Делаем Простого Бота Для Slack В Облаке

Шаг 2: создайте сервисный аккаунт в Яндекс.

Облаке На стороне Slack мы создали приложение, которое может писать в чат и которое можно подключить извне с помощью токена.

Теперь вам нужно создать точку доступа на стороне облака.

Сначала давайте создадим сервисную учетную запись.

Для этого перейдите в Консоль Яндекс.

Облака .

Перейдите в рабочий каталог и выберите пункт меню Сервисные аккаунты .

Создайте новую учетную запись службы Slack-bot и назначьте ей роль.

редактор .



Инструкция: Делаем Простого Бота Для Slack В Облаке

После создания сервисного аккаунта в разделе Обзор получаем Идентификатор; в дальнейшем он будет использоваться в настройках API-шлюза.



Инструкция: Делаем Простого Бота Для Slack В Облаке

Шаг 3. Создайте шлюз API для подключения облака и Slack.

В облачной консоли перейдите на панель управления каталогом и выберите API-шлюз.

нажать на кнопку Создайте шлюз API и создайте шлюз под названием for-slack-bot.

Инструкция: Делаем Простого Бота Для Slack В Облаке

После публикации API-шлюза в спецификации появится раздел серверов с доменом сервиса.

Этот домен будет точкой входа в приложение.

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



Шаг 4. Реализуйте функцию, реагирующую на команду.

Теперь мы можем реализовать функционал, который будет доступен из чата Slack. Для этого сначала зайдите в панель Slack и получите токен и секрет. В раздел OAuth&Permissions копируем Bot User OAuthToken, в дальнейшем будем использовать это значение для переменной SLACK_BOT_TOKEN в облаке.

В разделе «Основная информация» в подразделе «Учетные данные приложения» скопируйте секрет подписи и позже используйте его как значение переменной.

SLACK_SIGNING_SECRET.

Инструкция: Делаем Простого Бота Для Slack В Облаке

После этого зайдите в облачную консоль.

На панели управления текущего каталога выберите сервис Cloud Functions. нажать на кнопку Создать функцию .

Установите имя для-Slack-bot-привет-от-бессерверного .

Выберите среду выполнения, например python3.7. При создании функции мы по умолчанию получаем файл index.py. Создадим новый файл require.txt, в котором перечислим необходимые библиотеки.



Инструкция: Делаем Простого Бота Для Slack В Облаке

Меняем содержимое автоматически созданного файла index.py на содержимое файла из репозиторий .

Укажите точку входа index.handler. Увеличьте время ожидания до 5 секунд. Укажите идентификатор и переменные учетной записи службы.

SLACK_BOT_TOKEN, SLACK_SIGNING_SECRET .

нажать на кнопку Создать версию .



Инструкция: Делаем Простого Бота Для Slack В Облаке

Наша функция готова, теперь нам нужно опубликовать ее через API-шлюз.

Для этого скопируйте идентификатор созданной функции и перейдите в дашборд, а из него в раздел API Gateway. Редактирование ранее созданного шлюза f или-сланк-бот.

Инструкция: Делаем Простого Бота Для Slack В Облаке

Скопируйте раздел /hello-from-serverless из файла в спецификацию.

для-slack-bot.yml .

Мы заменяем IDYOURFUNCTIONHELLO к идентификатору созданной функции, и IDВАШ АККАУНТ — к идентификатору сервисного аккаунта.

Не меняя раздел серверов, скопируйте из него URL-адрес шлюза.

Сохраняем изменения, наша функция опубликована.



Шаг 4. Создайте команду в Slack.

На стороне Slack функция должна вызываться командой из чата.

Давайте создадим эту команду.

На панели Slack выберите созданное приложение ServerlessBotApp. В разделе «Команды слэша» нажмите кнопку «Создать новую команду».

В поле «Команда» введите /привет-от-сервера.

В поле URL-адрес запроса вставьте ранее скопированный URL-адрес шлюза API, добавив к нему /привет-от-сервера .

Заполните краткое описание.

Нажмите Сохранять .

Следуя появившимся инструкциям, переустановите приложение Slack. В Workspace теперь есть возможность вызывать команду /привет-от-сервера .



Инструкция: Делаем Простого Бота Для Slack В Облаке

После проверки команды мы получим сообщение от бота.



Инструкция: Делаем Простого Бота Для Slack В Облаке

Шаг 5: создайте функцию для ответа на сообщения пользователя

Теперь наш бот может отвечать на команды, но на сообщения в чате отвечать по-прежнему не может. Давайте создадим для этого функцию.

Перейдите в облачную консоль и создайте функцию для-slack-bot-светской беседы с той же средой выполнения Python3.7. Создайте файл require.txt, аналогичный предыдущему.

Мы меняем содержимое файла index.py по умолчанию на код из репозиторий .



Инструкция: Делаем Простого Бота Для Slack В Облаке

Выберите учетную запись службы Slack-bot, укажите точку входа index.handler, увеличьте таймаут до 5 секунд, не забудьте указать переменные среды SLACK_BOT_TOKEN И SLACK_SIGNING_SECRET, со значениями как в функции for-slack-bot-hello-from-serverless. Нажмите кнопку Создать версию.

Скопируйте идентификатор функции.

Для реализации функционала нам нужно будет сделать эту функцию общедоступной, поэтому в разделе Обзор перемещаем ползунок в поле Общественная функция .



Инструкция: Делаем Простого Бота Для Slack В Облаке

Теперь нам нужно опубликовать функцию через шлюз API. Для этого снова возвращаемся в раздел API Gateway. Редактирование ранее созданного шлюза для Slack-бота .

Замените раздел / аналогичным, содержащимся в файле.

для-slack-bot.yml , не забудьте заменить IDYOURFUNCTIONSMALLTALK к ранее скопированному идентификатору функции и IDВАШ АККАУНТ к идентификатору учетной записи службы.



Инструкция: Делаем Простого Бота Для Slack В Облаке

Шаг 6. Настройте подписку на сообщения в Slack.

После создания функции и ее публикации нам необходимо настроить подписку на сообщения на стороне Slack. Возвращаемся на панель Slack и переходим в раздел «Подписки на события».

Переместите ползунок «Включить события» во включенное положение.

Указываем адрес API Gateway в поле Request URL и ждем его появления Проверено .

В разделе «Подписаться на события бота» на той же странице нажмите кнопку «Добавить событие пользователя бота» и выберите message.im. Сохраните изменения.

Переустановите приложение, следуя появившимся инструкциям.



Инструкция: Делаем Простого Бота Для Slack В Облаке

Наш бот умеет реагировать на сообщения пользователей «:wave Knock:» и «Knock Knock», проверим его работу в чате.



Инструкция: Делаем Простого Бота Для Slack В Облаке

Мы создали бота, который может обрабатывать сообщения чата и отвечать на команды пользователя.

Его функционал можно расширить, например, используя базу данных Яндекса для хранения полученных сторонних данных или используя объектное хранилище для хранения необходимых файлов.

Оставляем полезные ссылки на Serverless-каналы и сообщества по всему миру и в России, где можно найти еще больше полезных примеров использования функций:

Подписаться в блог Яндекс.

Облака, чтобы узнавать еще больше новостей и историй об IT и бизнесе.

Другие истории, которые активно читают наши подписчики:



Инструкция: Делаем Простого Бота Для Slack В Облаке

Hrd86


Рег
06 Nov, 2019

Тем
77

Постов
177

Баллов
602
Похожие темы Дата
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно