Slack

Введение

Привет, друзья! Меня зовут Лидия. И сейчас я хочу вас пригласить в мир Slack ботов, используя Dokkur.

Это описание покажет вам, как создать простой “Hello World” Slack бот на Node.js и развернуть его на Dokkur в течение нескольких минут. Эти инструкции также дадут вам достаточно информации, чтобы использовать Dokkur наилучшим образом.

Убедитесь, что у вас уже есть:

  1. Dokkur аккаунт.
  2. SSH ключи, добавленные в ваш аккаунт.
  3. Node.js и npm, установленные локально.
  4. Аккаунт в Slack (Slack Team).
  5. Банановый молочный коктейль, чтобы в конце отпраздновать свой успех (обязательно!).

Создаем простой Slack бот

Заметьте, что если вы не хотите копировать код отсюда, то вы можете склонировать GitHub репозиторий.

Нам не придется создавать много файлов. В первую очередь, создадим файл package.json, чтобы Dokkur смог распознать, что все написано на Node.js.

Создайте файл package.json и вставьте туда следующую:

{
"name": "dollurBot",
"version": "0.0.1",
"description": "Simple testing Node server",
"main": "app.js",
"author": "Lydia Khashina",
"license": "MIT",
"dependencies": {
"express": "^4.x.x",
"body-parser": "^1.x.x",
"request": "2.56.x"
}
}

С помощью этого файла мы определяем информацию о нашем боте и его 3 зависимостях, которые вы можете установить, запустив команду
npm install

После этого автоматически создастся папка node_modules, в которой вы не должны никогда ничего менять!

Теперь надо настроить сервер, который будет обслуживать наш бот. Создайте файл и назовите его app.js. Вставьте следующее:

var express = require('express');
var bodyParser = require('body-parser');
var app = express();
var port = process.env.PORT || 1337;
// body parser middleware
app.use(bodyParser.urlencoded({ extended: true }));

// test route
app.get('/', function (req, res) { res.status(200).send('Hello world!'); });

app.listen(port, function () {
console.log('Listening on port ' + port);
});

Здесь мы объявляем нескольок переменных для нашего приложения, а также добавляем URL кодировку. Теперь это может запустить Express сервер, который слушает порт 1337, и тестовый route, который отвечает так: “hello world”. Давайте поиграимся с этим!

Во-первых, запустите приложение:

node app.js

Оно должно вывести сообщение “Listening on port 1337”, пожтому откройте новую вкладку консоли и напишите:

curl 'localhost:1337/'

Это простая Bash команда для сбора информации с URL. Если все ок, то можно двигаться дальше.

Следующий пункт нашего веселья довольно простенький, поэтому не теряйте времени и вставляйте в ваш файл app.js эти строчки кода:

app.post('/hello', function (req, res, next) {
var userName = req.body.user_name;
var botPayload = {
text : 'Hello ' + userName + ', welcome to Dokkur Slack channel! I\'ll be your guide.'
};
// Loop otherwise..
if (userName !== 'slackbot') {
return res.status(200).json(botPayload);
} else {
return res.status(200).end();
}
});

Как видно, это route, который выполняется, как только POST запрос был получен на /hello. В этом случае, мы получаем информацию о том пользователе, который инициировал запрос, и создаем ответ в формате JSON, который будет отослан обратно в Slack!

Установка Dokkur Toolbelt

На этом шаге вы должны установить Dokkur Toolbelt, что даст вам доступ к Dokkur Command Line Interface (CLI).

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

Публикуем Slack бот

Чтобы опубликовать бот на Dokkur, нам надо создать файл Procfile со следующей строкой:

web: node app

Это говорит Dokkur выполнить node команду (которую вы уже выполнили локально) и запустить ваш сервер!

Чтобы окончательно опубликовать ваш код на Dokkur, надо создать Git репозиторий:

git init
git add .
git commit -m 'Initial commit.'

Затем переходи к следующему.

Для публикации приложения используется веб-интерфейс и Dokkur Toolbelt. Следуй инструкции:

  1. Отрой личный кабинет, перейди в раздел Personal apps (левое меню)
  2. Нажми на кнопку ⨁, чтобы открыть интерфейс New App
  3. Введи название приложения (Внимание! Используй только латинские буквы в нижнем регистре и цифры, например, myapp007), выбери доступный и подходящий инстанс для хранения, выбери шаблон Custom App и нажми на кнопку Create App.

Поздравляю! Ваше приложение создано. А сейчас надо его опубликовать. Поехали!

  1. Перейди в раздел Settings, скопируй git url из секции Git URL.
  2. Перейди в Dokkur Toolbelt и запусти следующую команду:

    git remote add dokkur git_url
    Вместо git_url вставь ссылку, которую скопировал из веб-версии.

  3. Запушь свое приложение:
    git push dokkur master
    Если хочешь опубликовать в другую ветку, то:
    git push dokkur yourbranch:master

Ура! Твое приложение опубликовано! Перейди по ссылке yourappname.dokkurapp.com в браузере.

Если ты уже начал отмечать своим банановым молочным коктейлем, то заканчивай! Поторопился ты. Нам надо еще интегрировать бот с твоим аккаунтом Slack (Slack team).

Интеграция бота со Slack

Это финальный шаг. Если у тебя нет аккаунта в Slack, то зарегистрируй, это бесплатно.

Переходи в App Directory в меню своего аккаунта (Slack team).

App Directory

Нажми на кнопку Build.

Build

Выбери Make a Custom Integration в блоке Something just for my team. Теперь ты увидишь список различных видов интеграций. Нам нужно выбрать Outgoing WebHooks.

Build a Custom Integration

Круто! Теперь мы готовы создать эту интеграцию. Нам надо заполнить нужную информацию Channel - выбери какой-то определенный канал, или все, или создай новый. Trigger Words - введи те слова, на которые бот будет реагировать и начинать свою работу. URL - вставь ссылку на приложение, которую можно взять в разделе Domains в меню твоего приложения в Dokkur.

Integration Settings

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

Сохрани изменения и переключайся на Slack!

Напиши любое сообщение, которое начинается со слова (trigger), которое ты написал в настройках, чтобы бот среагировал, и voilà! У меня это выглядит вот так:

Slack Example

Поздравляю! Теперь ты спокойно можешь выпить банановый молочный коктейль!

Спасибо за внимание. Если вдруг остались какие-нибудь вопросы, то не стесняйся и пиши мне на почту lydia@dokkur.com.