맞춤 슬랙 봇 만들기

Sep 15, 2025
어떻게
Create a custom Slack bot
(이미지 크레디트 : 웹 디자이너)

느슨한 것은 즉시 의사 소통 해야하는 기업 및 팀을위한 인기가 많은 도구입니다. 어떤 경우에는 일일 중단으로 간주되는 반면, 그것은 또한 모든 것을 한 곳에서 유지하기 위해 수십 가지의 통합을 제공하는 훌륭한 자동화 잠재력을 가지고 있으며 천천히 이메일을 대체합니다.

시스템을 여유로 통합하는 여러 가지 방법이 있습니다. 이 플랫폼은 디지털 작업 공간에서 미리 알림 또는 메시지를 전달할 수있는 브랜드의 봇을 제공합니다. 그리고 더 많은 협업 향상을 위해 이들을 시도하십시오 클라우드 스토리지 옵션.

  • 디자이너를위한 최고의 공동 작업 도구 중 18 개

느슨한 것은 '봇'으로 간주 될 수있는 다양한 엔티티를 제공합니다.

  • 웹 후크, 이는 다른 앱에서 느슨해 지나면 메시지를 게시 할 수 있지만 편도 형태의 통신 형태이며,
  • 앱, 통합 (다른 앱 포함)을 발전시키기 위해,
  • 봇 사용자, 곧 더 많은 것.

이 튜토리얼에서는 특히 'Bot Users'에서 프로그래밍하는 방법 (가이드를 확인하십시오) 최고의 코드 편집자 인생을 쉽게하기 위해) 당신의 필요에 맞게하십시오. 이 전제 사항은 앱 통합을 추가 할 수있는 여유 공간에 액세스 할 수 있습니다. 당신이 아직 하나의 일부가 아니라면, 그들은 자유롭게 만들 수 있습니다.

다음과 같은 경우, 우리는 노드 앱을 구축하여 수확 한 채널의 특정 메시지에 특정 메시지에 응답합니다. 우리는 Slackbots '모듈을 사용합니다.이 모듈은 Slack Real-Time Messaging API를위한 래퍼입니다.

웹 사이트를 만들기에 관심이 있으십니까? 훌륭한 것을 선택하십시오 웹 사이트 빌더 그리고 톱 웹 호스팅 그것으로가는 서비스.

01. 코드 설정

이 자습서에서는 노드가 설치되어있는 것으로 가정합니다. 그렇지 않다면 지금하십시오. 그때 자산을 다운로드하십시오 너는 필요할거야. 우리는 자습서를위한 출발점과 프레임 워크를 제공했습니다.

전반에 걸쳐 'Slackbots'및 'Node-Slack-Upload'와 같은 모듈을 사용합니다. 설치 명령을 실행하여 얻을 수 있습니다.

npm install

02. 여유로운 설정

Create a custom Slack bot: Slack setup

봇에 사용자 이름을 지정하고 채널에 초대하십시오. (이미지 크레디트 : 웹 디자이너)

우리는 여유를위한 "봇 사용자"통합을 사용하고 있습니다. 이렇게하려면 'https : // & lt; youslackworkspace & gt; .slack.com / apps / a0f7ys25r-bots'로 가서 "구성 추가"를 클릭하여 토큰을 가져와야합니다.

봇의 사용자 이름을 선택하십시오 (나중에 프로그래밍 방식 으로이 작업을 무시할 수 있음)을 확인하고 확인하십시오.

봇을 원하는 채널로 초대하십시오.

봇 사용자를 만들면 다음 형식으로 토큰이 표시됩니다.

XOXB-000000-000000-x0x0xxxxx0xxxxxx.x.

다음 단계에 대한 토큰을 복사하십시오.

03. 환경 변수

우리는 하드 코딩을 피하고 우리가 생성 한 슬랙 토큰과 비공개 슬랙 작업 공간에서 채널 이름을 나타내는 비밀 토큰과 키를 드러내는 환경 변수 ( '.en'파일)를 사용합니다.

계속해서 '.env'파일을 토큰으로 채우고 봇 사용자를 초대 한 채널의 이름을 입력하십시오.

 slack_token = xoxb- & lt; yourToken & gt;
SLAX_CHANNEL = & lt; 채널 이름 & gt; 

04. 봇 매개 변수

이 다음 단계는 'index.js', 대부분의 개발이 일어나는 간단한 봐, 'bin / lib / bot.js'를 보유하고 있습니다. 인덱스 파일에서 우리는 'wdmbot'인 이름을 지정하여 봇을 인스턴스화합니다.

'bot.js'에서는 이름, 토큰 등의 각 인스턴스의 매개 변수를 제어합니다.

 // index.js
const bot = require ( './ bin / lib / bot'). init
( 'WDMBOT');

//bot.js.
const botparams = {
icon_emoji : ': robot_face :',
as_user : 거짓
};
봇;
기능 initbot (botname) {
Bot = 새로운 Slackbot ({
토큰 : process.env.slack_token,
이름 : BotName.
});
} 

05. 채널에 게시물

Create a custom Slack bot: Post to channel

이제 메시지를 보내려면 봇을 가져올 수 있습니다 (이미지 크레디트 : 웹 디자이너)

'sendmessage'함수를 살펴보십시오. 우리는 'Postto'메서드를 사용합니다. 이렇게하면 모든 유형의 채널, 공개 또는 비공개에 게시됩니다. 개인 채널에만 게시하고 싶다면 'Posttogroup'을 대신 사용할 수있는 경우 (또는 공용 1의 경우 'Posttochannel')를 사용할 수 있습니다. 첫 번째 메시지를 보내려면 'initbot'에 코드를 추가 할 수 있습니다.

 함수 초기 (BotName) {
bot = / * 위보기 * /
SendMessage ( '나는 여기에!');
}
// 이제 'npm start'를 실행합니다 

06. 사용자 정의 Botparams.

채널에 WDMBOT의 메시지가 나타납니다. 'botparams'에서 'as_user'가 false로 설정되어 있으므로 이름과 이미지를 무시할 수 있습니다. true로 설정하면 토큰을 가져올 때 설정 한 이름과 이미지를 사용합니다.

봇 이모티콘을 이미지로 변경할 수 있습니다 :

 const botparams = {
icon_url : 'https://pbs.twimg.com/
profile_images / 976112552081010688 /
wllqvj8d_400x400.jpg ',
as_user : 거짓
}; 

07. 채널 이벤트

Create a custom Slack bot: Channel events

메시지를 듣기 위해 봇을 위로 설정하십시오 (이미지 크레디트 : 웹 디자이너)

게시 메시지는 유용하지만 봇을 더 많은 대화식으로 만들려면 채널의 다른 사용자의 게시물을 식별 할 수 있어야합니다. 메시지 이벤트를 듣고 채널에 입력 할 때 일어나는 일을 확인해 봅시다. 'user_typing'또는 '메시지'와 같은 다른 메시지 유형이 기록되는 메시지 유형을 확인해야합니다.

 함수 초기 (BotName) {
bot = / * 위보기 * /
bot.on ( '메시지', 데이터 = & gt; {
console.log (데이터);
});
} 

08. 들어오는 메시지에 응답하십시오

다음으로, 우리는 '메시지'메시지 '의 수신 메시지와 특정 구 또는 키워드에 회신하여 절대적으로 모든 것을 회신하지 않도록 요청합니다. 정확한 구를 일치시키고 싶으면 소문자 문자열을 비교해보십시오. 우리는 '메시지가 포함 된 ()'특정 단어를 포함하는지 확인할 수 있습니다.

 bot.on ( '메시지', 데이터 = & gt; {
if (data.type === '메시지') {
if (data.text.tolowercase () === '어디로
너야? ') {
SendMessage ( '나는 여기에!');
}
}
}); 

09. "인간"사용자에게 제한합니다

Bot 사용자가 보낸 메시지에는 'bot_message'와 bot_id의 하위 유형과 같은 다양한 속성이 있습니다. 응답이 듣는 키워드 중 하나가 포함되어 있으면 인간이 봇의 무한 루프를 피하기 위해 인간이 봇의 무한한 루프를 피하기 위해 인간이 게시 한 메시지 만 방지하기 위해 답장을 제한하고 싶을 수도 있습니다.

 bot.on ( '메시지', 데이터 = & gt; {
if (data.type === '메시지'& amp; 데이터.
subtype! == 'bot_message') {
if (data.text.tolowercase ().
포함 ( 'Hello')) {
SendMessage ( 'Hello, 나는 봇!');
}
}
}); 

10. 개인화 된 응답

더 개인화 된 응답을 제공하기 위해 답장하는 메시지의 사용자 ID를 활용할 수 있습니다. 느슨한 것은 태그 '@ @ @ @ int;' 특히 여러 채널 구성원이 동시에 상호 작용하는 경우 특히 여러 채널 구성원이 동시에 상호 작용하는 경우 유용 할 수있는 사람을 확인합니다.

 bot.on ( '메시지', 데이터 = & gt; {
if (data.type === '메시지'& amp; 데이터.
subtype! == 'bot_message') {
if (data.text.tolowercase ().
포함 ( 'Hello')) {
SendMessage ( 'hello & lt; @ $ {data.user}
& gt; 나는 봇이야! ');
}
}
}); 

generate CSS

고객의 업무, 경력 또는 기관을 다음 단계로 데려가는 최신 창의적이고 실용적인 기술을 배우려는 경우 CSS - CSS 중심의 웹 디자이너 및 개발자를위한 CSS 중심의 컨퍼런스에 참여하십시오. 더 찾아 봐 여기 ...에 특별 제공 코드를 사용하십시오 WebDesigner2. 티켓에서 10 % 할인! (이미지 크레딧 : 게티 / 미래)

11. 응답 업데이트

봇은 응답을 편집 할 수 있습니다. 그래도 오직. 따라서 실수를 거쳐 메시지를 자동으로 수정할 수있는 오타 스포팅 봇을 원한다면 현재 설정에서는 불가능합니다.

메시지를 업데이트하려면 새로운 기능을 정의하고 데모에서 사용할 전역 부울을 정의합니다.

 ChangeReply = False;
updateMessage 함수 (messageParams) {
Bot.UpdateMessage (messageParams.Channel,
messageParams.ts, messageParams.text,
Botparams);
} 

12. 메시지를 변경하십시오

Create a custom Slack bot: Changing the message

봇이 보내는 메시지를 업데이트하십시오 (이미지 크레디트 : 웹 디자이너)

봇이 우리를 보내는 텍스트를 업데이트 해보십시오. 이 경우 메시지 이벤트에서 들어오는 봇 메시지에 회신해야하므로 업데이트의 조건을 일치 시켜서 업데이트 할 원본 메시지의 시간 소인도 사용합니다. 그래서 느슨해지는 것은 다른 사람이 게시 될 경우 업데이트 할 메시지를 식별 할 수 있습니다.

if (data.type === '메시지'& amp; & amp; data.subtype! == 'bot_message'& amp; & amp; data.text) { if (data.text.includes ( '업데이트')) { SendMessage ( '5에서 업데이트 드리겠습니다 초 '); ChangeReply = true; } } if (data.type === '메시지'& amp; & amp; data.subtype === 'bot_message'& amp; & amp; ChangeReply) { ChangeReply = 거짓; setTimeout (() { UpdateMessage ({Channel : Data.Channel, TS : data.ts, text : 'i 업데이트 된'}); }, 5000); }

13. 일시적인 메시지

Create a custom Slack bot: Ephemeral messages

일시적인 메시지는 한 사용자가 볼 수 있으며 삭제할 수 있습니다. (이미지 크레디트 : 웹 디자이너)

임시 메시지는 이름이 제안 할 수 있으므로 일시적입니다. 또한 한 사용자에게만 볼 수 있으며 삭제할 수 있습니다. 이러한 유형의 메시지는 영구적으로 머무를 필요가없는 팁 또는 알림으로 유용 할 수 있습니다.

if (data.text.tolowerCase (). 포함 ( 'HR')) { ephemeralmessage ({ 채널 : data.channel, 사용자 : data.user, 텍스트 : 'HR에 접촉 해야하는 경우, 그들의 이메일은 [email protected]입니다. ' }); } // 우리가 호출하는 기능 기능 ephemeralmessage (messageParams) { bot.postephemeral (messageparams.channel, messageParams.User, messageParams.text, Botparams); }

14. 사용자 조회

다른 방법은 display_name 및 real_name과는 다른 ID 또는 이름 중 하나로 다릅니다. 그러나 사용자 ID 만 메시지 이벤트에서 사용할 수 있습니다. 따라서 모든 사용자를 가져 와서 ID와 일치시켜 사용자 이름 조회를 구현할 수 있습니다.

 Async 함수 getUsername (UserID) {
봇을 반환하십시오 .GetUsers ()
.then (데이터 = & gt; {
멤버 = data.members.find.find.
(사용자 = & gt; {
user.id === userid를 반환합니다.
});
return member.name;
})
.catch (err = & gt; console.log (오류));
} 

15. 직접 메시지를 보내십시오

새 사용자 조회를 사용하면 ephemeral 메시지가하지 않을 때 사용자에게 직접 메시지를 보낼 수 있습니다. 직접 메시지는 원래 채널보다 다른 ID가있는 새 / 다른 채널로 간주됩니다. 이전에 수행 한 사용자와 같은 방식으로 채널 조회를 구현할 수도 있습니다.

 // 메시지 이벤트에서
if (data.text.tolowercase (). ( 'bot')) {
senddm ({
사용자 : data.user,
텍스트 : '어떻게 도와 드릴까요?'
});
}
// 우리가 호출하는 기능
비동기 기능 senddm (messageParams) {
사용자 = GetUsername을 기다리십시오
(messageParams.user);
Bot.PostMessageTous (사용자, 메시지)를 반환합니다
params.text, botparams, (Err, Data) = & gt; {
console.log (err)
});
} 

16. 이미지로 응답하십시오

Bot 사용자는 또한 채널에 파일과 이미지를 업로드 할 수있는 권한이 있습니다. 이 기능은 'Slackbots'가 적용되지 않으므로 아래에 설명 된 바와 같이 새 업 로더를 인스턴스화해야합니다. 또한 프로젝트 루트에서 '자산'폴더를 준비하십시오. 일부 이미지가 있습니다.

다음 단계에서 정의 된 'sendImage ()'호출을 준비합시다.

 // initbot ()
업 로더 = 새 슬랙 플로로드 (Process.Env.
slack_token);

// 메시지 이벤트에서
if (data.text.includes ( '이미지')) {
if (! data.upload) {
/ *이 경우 메시지가 없습니다.
하위 유형,
그래서 우리는 그것이
이전 업로드 메시지 * /
image = data.text.split ( '') 
; SendImage ( '이것은 당신의 이미지입니다 원한 ', 이미지); } }

17. 파일 업로드 기능

Create a custom Slack bot: The file upload function

업로드 및 파일 시스템을 사용하여 이미지를 업로드하십시오 (이미지 크레디트 : 웹 디자이너)

업 로더와 파일 시스템 (FS) 모듈을 사용하여 이미지를 업로드합니다. 사용자의 메시지가 "Image & lt; ImageName.Extension & gt"형식이고 '자산'폴더에 이러한 파일이 존재하며 이미지가 읽고 업로드됩니다. 그렇지 않은 경우, 우리는 일반적인 메시지를 되돌립니다 (심지어 임시 일 수도 있습니다).

기능 SendImage (메시지, 이미지) {
uploader.uploadfile ({
파일 : FS.CreaterEADStream (Path.Join.
(__dirname, '../../Assets/$ {image}')),
mimetype : '이미지 / *',
FileType : '*',
제목 : 이미지,
초기화 : 메시지,
채널 : 채널
}, (Err, Data) = & gt; {
if (err) {
SendMessage ( '미안해, 찾을 수 없어
$ {image} ');
}
});
} 

18. 여러 채널에 게시됩니다

응답을 기대하는 각 채널의 구성원 인 한 동일한 봇 사용자가있는 여러 채널에 게시 할 수 있습니다. 'posttoall'함수를 만들고 환경 변수를 쉼표로 구분 된 값으로 채널 이름을 갖도록하십시오.

 const 채널 = process.env.slack_channel.
스플릿(',');
const 채널 = 채널 
; 함수 posttoall (메시지) { channels.foreach (채널 = & gt; { bot.postto (채널, 메시지, botparams); }); }

19. 분할 채널

때로는 채널을 사용하여 디버깅을 위해 사용하거나 다른 채널의 동일한 봇과 다르게 이벤트에 응답 할 수 있습니다. 채널 이름 지정 규칙을 운동하는 것은 당신에게 달려 있습니다. 우리는 Slack_Channel = WDM-Tutorial, WDM-Tutorial-Debug에서 다음 예제를 가정합니다.

 함수 SplitMessages (Message, DebugMessage) {
channels.foreach (채널 = & gt; {
const msg = channel.inCludes ( '디버그')
? DebugMessage : 메시지;
bot.postto (채널, msg, botparams);
});
} 

20. 응답 사전

우리는 메시지에 직접 부호화 된 응답을 해결했습니다. 앞으로, 일을 더 관리 할 수있게하려면 데이터베이스 또는 JSON 형식으로 트리거 및 응답을 저장하고 충족 된 조건에 따라 해당 조건을 전환 할 수 있습니다.

 // 예제 응답 항목
{
입력 : 'HR',
InputMatch : '포함',
응답 : 'HR에 접촉 해야하는 경우,
그들의 이메일은 [email protected]입니다. ',
응답 유형 : 'ephemeral'
} 

21. 추가 자원

Create a custom Slack bot: Further resources

다른 곳에서는 훨씬 많은 봇 정보가 있습니다. (이미지 크레디트 : 웹 디자이너)

슬랙 API에서 사용할 수있는 몇 가지 다른 유용한 특성이 있습니다. 다행히이 자습서에서는 모든 봇 요구에 필요한 것에 대한 개요를 제공 받았습니다. 그를 읽어서 추가 자원을 찾을 수 있습니다 'Slackbots'문서 또는 전체 느슨한 API 문서 ...에

이 기사는 원래 Creative Web Design Magazine의 문제 289에 출판되었습니다. 웹 디자이너 ...에 여기 문제를 구입하십시오 또는 웹 디자이너를 구독하십시오 ...에

관련 기사:

  • AI-Powered Chatbot을 구축하십시오
  • 여유 시간은 엄청난 업데이트를했으며 당신은 모두 그것을 사랑할 것입니다.
  • chatbot 경험을 디자인하는 방법

어떻게 - 가장 인기있는 기사

페인트 브러시를 청소하는 방법 : 확실한 가이드

어떻게 Sep 15, 2025

(이미지 크레디트 : 소니 플라나 간) 페인트 브러시를 제대로 청소하는 방법을 배우는 것..


Google reCAPTCHA로 봇을 중지

어떻게 Sep 15, 2025

(이미지 크레디트 : 미래) 봇을 지키는 것은 항상 숫자 게임입니다. 슬프게도, 사용하기 �..


디지털 펠린 공기 그림을 만드는 방법

어떻게 Sep 15, 2025

훌륭한 예술을 만드는 데 야외에서 가져 가라 (이미지 크레디트 : MIKE MC CAIN) 요�..


3D 모델을위한 쉬운 포즈 기술

어떻게 Sep 15, 2025

나는 지난 몇 년 동안 애니메이션 디렉터였으며 많은 애니메이터와 함께 일했으며 그들이 자신의..


InDesign에서 특별한 인쇄 마감재 생성

어떻게 Sep 15, 2025

페이지 1 / 4 : 포일 블로킹 포일 블로킹 ..


훌륭한 Poser Art

어떻게 Sep 15, 2025

페이지 1 / 2 : 페이지 1 페이지 1 ..


그림이있는 반응 형 대시 보드 만들기

어떻게 Sep 15, 2025

Figma는 UI 디자이너를위한 그래픽 도구입니다. 간단한 인터페이스가 있으며 팀원과의 작업을 공동 작업 할 수 있습니다. 오프라인으로 작업하려�..


Amazon Lumberyard에서 시작하기 : 설정

어떻게 Sep 15, 2025

아마존의 새로운 게임 엔진, 재목 두는 장소 게임 및 자산 창출에 대한 흥미로운 관심�..


카테고리