Создайте пользовательский слабый бот

Sep 14, 2025
Инструкции
Create a custom Slack bot
(Образ кредита: веб-дизайнер)

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

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

  • 18 из лучших инструментов совместной работы для дизайнеров

Slack предлагает различные объекты, которые можно считать «ботами»:

  • окна, которые позволяют опубликовать сообщения от других приложений в Slack, но односторонние формы связи,
  • Программы, Для достижения интеграции (с другими приложениями),
  • Пользователи бота, больше на них в ближайшее время.

В этом руководстве мы будем смотреть, особенно на «пользователях Bot», как их программировать (проверьте наше руководство по Лучшие редакторы кода Чтобы сделать вашу жизнь проще) и заставить их соответствовать вашим потребностям. Это предполагает, что у вас есть доступ к пробаку, где вы можете добавить интеграции приложений. Если вы еще не частью одного, они могут создавать.

В дальнейшем мы создаем приложение Nodejs к последующему до и отвечать на определенные сообщения в расслоенном канале. Мы используем модуль «SLATEBOTS», который является оберткой для API обмена сообщениями SLASP.

Также заинтересованы в создании сайта? Выберите блестящий Строитель сайта и топ веб хостинг Сервис, чтобы пойти с этим.

01. Настройка кода

Это руководство предполагает, что у вас установлен узел. Если нет, сделайте это сейчас. потом Скачать активы тебе понадобиться. Мы предоставили вам отправной точкой и рамки для учебника.

На протяжении всеми мы используем такие модули, как «расслабленные» и «узел-рассечка». Их можно получить, запустив команду установки.

npm install

02. Slack Setup

Create a custom Slack bot: Slack setup

Дайте свой бот имя пользователя и пригласите его на свой канал (Образ кредита: веб-дизайнер)

Мы используем интеграцию «Пользователь Bot» для Slack. Для этого нам нужно получить токен, собираясь на «https: // & lt; youslackworkspace & gt; .slack.com / Apps / a0f7ys25r-bots 'и нажмите« Добавить конфигурацию ».

Выберите имя пользователя для своего бота (мы можем переопределить это программно на более позднем этапе) и подтвердить.

Пригласите бот на нужный канал.

Создавая пользователя Bot, вы получите токен в следующем формате:

xoxb-000000-000000-x0x0xxxxx0xxxx0x

Скопируйте токен для следующего шага.

03. Переменные среды

Мы используем переменные среды (файл «.env»), чтобы избежать жесткого кодирования и выявления секретных токенов и ключей, таких как токен Slack, который мы сгенерировали, и название канала в вашем личном рабочем пространстве.

Продолжайте и заполните файл «.env» с вашим токеном, а имя канала, к которому вы пригласили пользователя BOT.

 slack_token = xoxb- & lt; yourtoken & gt;
Slack_Channel = & lt; name-name & gt; 

04. Параметры бота

Этот следующий шаг отвечает нам до 2 файлов: «index.js», который у нас будет краткий поиск, а «Bin / lib / Bot.js», где происходит большая часть нашего развития. В индексном файле мы создали наш бот, давая ему имя, которое является «WDMBOT».

В «Bot.js» мы контролируем параметры каждого экземпляра с именем, токеном и т. Д.

 // index.js
const bot = требует ('./ bin / lib / bot'). init
(«WDMBOT»);

//bot.js.
const botparams = {
icon_emoji: ': Robot_Face:',
AS_USER: false.
};
пусть бот;
Функция INITBOT (BOTNAME) {
BOT = New Slackbot ({{
Токен: process.env.slack_token,
Имя: botname.
});
} 

05. Пост на канал

Create a custom Slack bot: Post to channel

Теперь вы можете получить свой бот, чтобы отправить сообщения (Образ кредита: веб-дизайнер)

Посмотрите на функцию «SendMessage». Мы используем метод «Postto». Это будет обрабатывать публикацию любым типом канала, публичного или частного. Если вы хотите опубликовать только на частные каналы, вы можете использовать вместо этого «посттогруппу» (или «постточена» для публичного). Чтобы отправить наше первое сообщение, мы можем добавить код в «INITBOT».

 Функция INITBOT (BOTNAME) {
бот = / * см. Выше * /
SendMessage («Я здесь!»);
}
// Теперь запустите начать «NPM» 

06. Пользовательские ботпарамс

Вы должны были заметить сообщение от WDMBot появляться в вашем канале. Стоит отметить, что в «BotParams», «AS_USER» устанавливается на false, что позволяет переопределить имя и изображение. Если установлено значение true, он будет использовать имя и изображение, которое вы устанавливаете при получении токена.

Вы можете изменить emoji bot на изображение, как так:

 const botparams = {
icon_url: 'https://pbs.twimg.com/
profile_images / 976112552081010688 /
Wllqvj8d_400x400.jpg ',
AS_USER: false.
}; 

07. Канальные события

Create a custom Slack bot: Channel events

Установите свой бот, чтобы прослушать сообщения (Образ кредита: веб-дизайнер)

Размещение сообщений полезно, но чтобы сделать бот более интерактивным, нам нужно иметь возможность идентифицировать должности от других пользователей в канале. Давайте послушаем событие сообщения, а затем посмотрите, что происходит, когда мы введем в канал. Мы должны видеть разные типы сообщений, которые зарегистрированы, например, «user_typing» или «сообщение».

 Функция INITBOT (BOTNAME) {
бот = / * см. Выше * /
Bot.on («Сообщение», данные = & GT; {
console.log (данные);
});
} 

08. Ответьте на входящие сообщения

Далее мы хотим ответить на входящие сообщения типа «сообщения», и, возможно, для конкретной фразы или ключевого слова, чтобы не ответить на абсолютно все. Мы обязательно сравниваем строчные строки, если мы хотим сопоставить точную фразу. Мы также могли посмотреть, включает в себя сообщение «включать ()» определенное слово.

 BOT.ON («Сообщение», Data = & GT; {
если (data.type === 'сообщение') {
если (data.text.tolowercase () === 'Где
ты?') {
SendMessage («Я здесь!»);
}
}
}); 

09. Ограничить «Человеческих» пользователям

Сообщения, отправленные пользователями BOT, имеют различные свойства, такие как подтип «BOT_MESSAGE» и BOT_ID. Возможно, вы захотите ограничить ответ только на сообщения о человеке, чтобы избежать бесконечных петель ботов, отвечающих на себя или друг другу, если их ответ включает в себя одно из ключевых слов, которые вы прослушиваете.

 BOT.ON («Сообщение», Data = & GT; {
if (data.type === 'сообщение' & amp; & amp; данные.
подтип! == 'bot_message') {
if (data.text.tolowercase ().
включает в себя («Hello»)) {
SendMessage («Привет, я бот!»);
}
}
}); 

10. Персонализированный ответ

Чтобы дать более персонализированный ответ, вы можете использовать идентификатор пользователя сообщения, на который вы отвечаете. SLIC будет автоматически преобразовывать идентификатор имени пользователя при заключении в теги '& lt; @ & gt;'. Определение того, кто вы отвечаете, могут быть полезны, особенно если несколько членов канала взаимодействуют с вашим ботом одновременно.

 BOT.ON («Сообщение», Data = & GT; {
if (data.type === 'сообщение' & amp; & amp; данные.
подтип! == 'bot_message') {
if (data.text.tolowercase ().
включает в себя («Hello»)) {
sendmessage (hello & lt; @ $ {data.user}
и GT; Я бот! ');
}
}
}); 

generate CSS

Если вы хотите узнать последние творческие и практические навыки, чтобы принять вашу клиентскую работу, карьеру или агентство на следующий уровень, затем присоединяйтесь к нам по генерации CSS - нашей CSS-ориентированной конференции для веб-дизайнеров и разработчиков. Узнать больше здесь Отказ Используйте специальный код предложения WebDesigner2. Для 10% скидки на билеты! (Кредит на изображение: Getty / Future)

11. Обновлять ответы

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

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

 Пусть coneeereplyly = false;
Функция UpdateMessage (MessageParams) {
Bot.UpdateMessage (MessageParams.Channel,
MessageParams.ts, messageparams.text,
ботпарамс);
} 

12. Измените сообщение

Create a custom Slack bot: Changing the message

Обновите сообщения, которые бот отправляет (Образ кредита: веб-дизайнер)

Давайте попробуем обновить текст, бот отправляет нас. В этом случае на событии сообщения нам нужно ответить на входящий бот сообщения, поэтому мы будем сопоставить это условие для обновления, и мы также используем Timestamp исходного сообщения, которое будет обновлено. Это так слабино может определить, какое сообщение обновлена, на случай, если другие размещены между ними.

 Если (data.type === 'сообщение' & amp; & amp; data.subtype! ==
'bot_message' & amp; & amp; data.text) {
Если (data.text.includes («обновление»)) {
SendMessage («Я обновись в 5
секунды);
ConterePlyly = True;
}
}
если (data.type === 'сообщение' & amp; & amp; data.subtype ===
'bot_message' & amp; & amp; ConterePlyLoy) {
changelyply = false;
setimeate (() = & gt; {
UpdateMessage ({канал: data.channel,
TS: Data.ts, текст: «Я обновил»});
}, 5000);
} 

13. Эфемерные сообщения

Create a custom Slack bot: Ephemeral messages

Эфемерные сообщения видны только одним пользователем и могут быть удалены (Образ кредита: веб-дизайнер)

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

 Если (data.text.tolowercase (). Включает в себя ('hr')) {
эфемерная плата ({
Канал: Data.Chaneel,
Пользователь: data.user,
Текст: «Если вам нужно связаться с HR,
Их электронная почта - [email protected]
});
}

// Функция мы звоним
Функция эфемерарамага (MessageParams) {
бот.postephemeral (MessageParams.Channel,
MessageParams.User, MessageParams.text,
ботпарамс);
} 

14. Найти пользователя

Разные методы будут принимать немного разные пользовательский параметр (ID или имя или имя, которое отличается от отображения display_name и real_name). Однако только идентификатор пользователя доступен на событиях сообщения. Поэтому мы можем реализовать поиск имени пользователя, получив все пользователи и соответствую идентификатору.

 Async Function GetUnername (UserID) {
Возврат ждут bot.geteSers ()
.then (данные = & gt; {
Пусть Member = data.members.find
(user = & gt; {
return user.id === userId;
});
возвратный член.name;
})
.catch (err = & gt; console.log (err));
} 

15. Отправить прямые сообщения

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

 // В событии сообщения
если (data.text.tolowercass (). Включает в себя («бот»)) {
senddm ({{{
Пользователь: data.user,
Текст: «Как я могу помочь?»
});
}
// Функция мы звоним
Async Function SendDM (MessageParams) {
Позвольте пользователя = ждать getUsername
(MessageParams.User);
return bot.postmessagetouser (пользователь, сообщение
Paramstext, botparams, (err, data) = & gt; {
Console.log (Err)
});
} 

16. Ответить с изображением

У пользователей BOT также есть разрешения для загрузки файлов и изображений на канал. Эта функциональность не покрывается «расслабленными», хотя, поэтому мы должны создавать создание нового загрузки, как показано ниже. Также приготовьте папку «Активы» в корне вашего проекта, с некоторыми изображениями в нем.

Давайте подготовим звонок для «SENDIMAGE ()», определенного на следующем шаге.

 // в INITBOT ()
Uploader = New Slackupload (Process.env.
Slack_token);

// в сообщении события
Если (data.text.includes ('image')) {
Если (! data.upload) {
/ * В этом случае нет сообщения
подтип,
Итак, мы проверяем, что он не запускается
Предыдущее Загрузить сообщение * /
Пусть image = data.text.split ('') 
; sepermage ('Это изображение, которое вы хотел ', image); } }

17. Функция загрузки файла

Create a custom Slack bot: The file upload function

Используйте загрузку и файловую систему для загрузки изображений (Образ кредита: веб-дизайнер)

Мы загружаем изображения с помощью модуля загрузки и файловой системы (FS). При условии, что сообщение пользователя находится в формате «Image & lt; imageName.extension & gt;», и такой файл существует в папке «Активы», изображение будет прочитано и загружено. Если нет, мы отправляем обратно регулярное сообщение (это даже может быть эфемерным).

Функция searsimage (сообщение, изображение) {
Uploader.uploadFile ({
Файл: FS.CreateSeadStream (Path.join
(__dirname, '../../assets/$ quilyImage}')),
Миметип: «Изображение / *»,
тип файла: '*',
Название: изображение,
Источничество: сообщение,
Каналы: канал
}, (ERR, DATA) = & GT; {
Если (err) {
SendMessage (извините, я не могу найти
$ {image} ');
}
});
} 

18. Пост на несколько каналов

Вы можете опубликовать на несколько каналов с тем же пользователем BOT, если он является членом каждого канала, где вы ожидаете ответ. Давайте создадим функцию «PostToAll» и обновить переменные среды, чтобы иметь имена каналов в виде значений, разделенных запятыми.

 Const Channels = Process.env.slack_channel.
расколоть(',');
Const Channel = каналы 
; Функция posttoall (сообщение) { каналы .foreach (канал = & gt; { bot.postto (канал, сообщение, ботпарамс); }); }

19. Сплит каналов

Изредка вы можете использовать каналы для отладки или реагировать на события по-разному с тем же ботом в разных каналах. Это зависит от вас, чтобы тренировать вашу конвенцию об именах канала. Предположим, что мы предположим, что Slack_Channel = WDM-Tutorial, WDM-Tutorial-Debug.

 Функция Slockmessages (сообщение, отладка) {
каналы .foreach (канал = & gt; {
const msg = channel.includes ('debug')
? Debugmessage: сообщение;
Bot.Postto (канал, MSG, BotParams);
});
} 

20. Словарь ответов

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

 // Пример ответ ответа
{
Вход: 'hr',
inputmatch: 'включают',
Ответ: «Если вам нужно связаться с HR,
Их электронная почта - [email protected],
Открытыйype: «эфемерный»
} 

21. Дополнительные ресурсы

Create a custom Slack bot: Further resources

Есть гораздо больше информации о боте, которая будет найдена в другом месте (Образ кредита: веб-дизайнер)

Есть несколько других полезных свойств, доступных в Slack API. Надеюсь, этот учебник дал обзор того, что возможно для всех ваших потребностей в боте. Дальнейшие ресурсы можно найти, чтение Документация «Slackbots» или полный Dell API Документация Отказ

Эта статья была первоначально опубликована в номере 289 журнала Treative Web Design Веб-дизайнер Отказ Купить проблему 289 здесь или же Подписаться на веб-дизайнер здесь Отказ

Статьи по Теме:

  • Построить чатбот AI
  • У слабые обновления было огромное обновление, и вы все будете любить это
  • Как разработать опыт чата

Инструкции - Самые популярные статьи

Как реализовать светлые или темные режимы в CSS

Инструкции Sep 14, 2025

Спецификация CSS постоянно развивается. Процесс реализации новых функц..


Оставьте щетку миксер в Photoshop

Инструкции Sep 14, 2025

Инструменты цифровой живописи серьезно продвинулись в последние неск..


Создайте эффект портала в Maya

Инструкции Sep 14, 2025

Этот портал эффект в докторе странно был очень особенным. Было в значи�..


Как сделать массивные взрывы с V-Ray

Инструкции Sep 14, 2025

Создание и композиционные 3D взрывы - это обычно задача для двух разных ..


Как перемещаться между Daz Studio и Cinema 4D

Инструкции Sep 14, 2025

Перемещение между программами можно запутать. Я склонен придерживать�..


Как покрасить яркий цветочный натюрморт

Инструкции Sep 14, 2025

Цвет и текстура предлагают идеальный способ дать вибрацию к цветочной..


Как нарисовать Harley Quinn

Инструкции Sep 14, 2025

Для меня апелляция цифровых Техника рисования просты В отличи..


Создать пушистый 3D-персонаж с нуля

Инструкции Sep 14, 2025

Создание механизма меха может быть легко, но если вы хотите сделать де�..


Категории