Мы все были новичками в чате. Возможно, вы также испытали это как новый сотрудник. Теплый прием, даже если он автоматизирован, поможет вам почувствовать себя частью команды. Чат-бот может выполнить это с минимальным кодом, как мы покажем в этом руководстве по Cisco Webex Teams.

Создайте своего чат-бота

Для начала вам потребуется учетная запись разработчика Cisco Webex. Загрузите клиент Webex и создайте учетную запись через приложение. Когда вы закончите, войдите на Портал разработчиков Webex онлайн. Здесь мы собираемся создать нашего бота.

Начните с нажатия синей кнопки «Создать новое приложение» в правом верхнем углу окна. Нажмите «Создать бота» и заполните данные по своему усмотрению. Я назвал своего «Welcome Bot», но подойдет любое имя и имя пользователя.

Когда вы закончите, нажмите «Добавить бота» внизу. Это приведет вас на страницу, где вы сможете увидеть сведения о своем боте, включая его токен доступа. Держитесь за это — оно понадобится вам позже.

Настройте свою среду разработки

Создаваемый нами бот будет работать на Node.js. Для начала создайте новую папку и инициализируйте свой проект. Если у вас не установлен Node.js, обязательно скачайте его здесь.

mkdir welcome-bot
cd welcome-bot
npm init

Команда «npm init» задаст вам пару вопросов, но можно нажать Enter, чтобы принять все значения по умолчанию. Теперь, когда мы настроили наш проект, мы собираемся установить два пакета:

npm install botkit dotenv

Botkit — это платформа, которую мы можем использовать для взаимодействия с Webex Teams, а dotenv позволяет нам использовать файл .env для определения переменных среды, таких как этот ключ доступа. Чтобы узнать больше о том, как работают файлы .env, вы можете ознакомиться с документацией здесь.

Чтобы Webex мог взаимодействовать с нашим ботом, Webex будет отправлять запросы REST на конечную точку, которую мы должны предоставить для них. Однако, когда вы разрабатываете веб-приложение локально, ваш веб-сервер будет работать на локальном хосте, который недоступен для остальной части Интернета, поскольку локальный хост относится к вашему собственному компьютеру. Чтобы решить эту проблему, мы будем использовать инструмент под названием ngrok, который направляет запросы в вашу локальную среду. Вы должны пойти дальше и скачать клиент ngrok с их сайта. Если вам интересно узнать больше о том, как это работает, вы можете прочитать о ngrok здесь.

Как только это будет сделано, вы должны открыть новое окно терминала, так как вы не сможете запускать другие команды во время работы ngrok. Используйте «cd», чтобы перейти к каталогу, в котором находится ваш проект, и запустите ngrok, например:

cd welcome-bot
ngrok http 7001

Это говорит ngrok направлять любые запросы, которые он получает, на http://localhost:7001. Теперь вы должны увидеть что-то похожее на это, сообщающее вам о статусе вашего сеанса.

Ваш URL будет немного отличаться, но из приведенного выше примера видно, что любые запросы к https://9cc89633.ngrok.io будут перенаправляться на http://localhost:7001 в течение следующих 8 часы. Это означает, что теперь Webex может отправлять запросы на ваш локальный веб-сервер разработки.

Напишите код своего бота

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

touch .env
nano .env

Теперь настройте файл .env следующим образом:

access_token=<ACCESS TOKEN>
public_address=https://<NGROK URL>.ngrok.io
secret=<SECRET>
PORT=7001

Обратите внимание, что я оставил три места, где вам нужно будет ввести свои данные:

  • Маркер доступа от Webex
  • URL-адрес ngrok, который я показал вам выше
  • Ваш секрет — это то, что будет использоваться для проверки входящих веб-перехватчиков, чтобы мы могли быть уверены, что они действительно поступают из Webex. В качестве секрета подойдет любая строка, но вы должны выбрать длинную строку, которую нельзя легко угадать.

Теперь создайте файл в том же каталоге с именем index.js и вставьте следующий код:

require("dotenv").config()

const Botkit = require("botkit")

const controller = Botkit.sparkbot({
  debug: true,
  log: true,
  public_address: process.env.public_address,
  ciscospark_access_token: process.env.access_token,
  secret: process.env.secret
})

const bot = controller.spawn()

controller.setupWebserver(process.env.port || 3000, (err, webserver) => {
  controller.createWebhookEndpoints(webserver, bot, () => {
    console.log("SPARK: Webhooks set up!")
  })
})

controller.on("direct_mention", (bot, message) => {
  bot.reply(message, "You mentioned me and said, \"" + message.text + "\"")
})

controller.on("direct_message", (bot, message) => {
  bot.reply(message, "I got your private message. You said, \"" + message.text + "\"")
})

controller.on("user_space_join", (bot, message) => {
  bot.reply(message, "Welcome, " + message.data.personDisplayName + "!")
})

Вы увидите, что контроллер Botkit использует API, аналогичный событиям JavaScript, где вы указываете событие, которое вы прослушиваете, и отвечаете соответствующим образом. Последний, user_space_join, — это тот, который даст нам нужные функции, но я включил два других, чтобы мы могли проверить способность нашего бота также отвечать на сообщения. Если вы хотите расширить функционал своего бота, вы можете посмотреть полный список событий здесь.

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

$ node index.js
Initializing Botkit v0.6.21
[...]
SPARK: Webhooks set up!
Webex: My identity is [...]

Протестируйте своего бота с новым пользователем

А теперь самое интересное: давайте протестируем только что сделанного бота! Откройте приложение Webex Teams и найдите имя пользователя своего бота. Он должен совпадать с тем, который вы ввели при создании бота. Как только ваш бот появится, нажмите синюю кнопку чата.

Это создаст пространство, где вы сможете пообщаться с ботом. Попробуйте отправить сообщение, чтобы убедиться, что ваш бот работает.

Теперь мы собираемся протестировать основную функциональность нашего бота: приветствовать новых пользователей на канале. Щелкните значок команды в левой части окна (второй сверху) и щелкните значок плюса, чтобы создать новую команду.

Вы можете назвать свою команду как хотите. Когда вы закончите, нажмите на свою новую команду. Это покажет вам список модераторов вашей команды. Нажмите кнопку «Добавить модератора команды» и добавьте своего бота, используя его имя или имя пользователя. Теперь ваш список модераторов должен выглядеть так, как показано ниже.

Теперь перейдите на вкладку «Пробелы» в левой части экрана и нажмите «Общие». Это комната, в которой члены вашей команды могут общаться. Теперь, когда приветственный бот находится в этом пространстве, он автоматически будет приветствовать новых участников, которые присоединятся. Если вы хотите проверить это на себе, вам придется создать новое пространство, так как вы не можете оставить «Общее» пространство по умолчанию. Ниже вы можете видеть, что я создал новое пространство, упомянул бота (набрав «@Welcome Bot» в чате), чтобы добавить его в пространство, вышел и снова присоединился. Затем бот приветствовал меня на канале и сделает то же самое для всех, кто присоединится.

Следующие шаги вашего бота

Если вы заинтересованы в расширении функциональности своего бота, обязательно ознакомьтесь с документацией Botkit здесь. Webex также предоставляет несколько примеров руководств, если вам нужны идеи для вдохновения. У них также есть SDK для iOS, Android, Java и больше, так что вы можете строить на Webex независимо от того, какой язык вы используете. Удачного взлома!