slack이라는 메신저를 이용하여 봇을 만들어 보자.
python과 javascript를 이용하여 각각 만들어 보겠다.
우선 슬랙 챗봇을 만들기 위해서는 API발급을 받아야 한다.
발급 받은 API를 잘 보관을 해두자
javascript
javascript에서는 slack-client라는 모듈을 통해 slack과 연동이 가능하다.
$ npm install -s slack-client #모듈 설치
slack과 연동을 할 때에는 슬랙에서 발생된 이벤트를 잡고, 슬랙으로 메세지를 보내는것 이 두가지만 해주면 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
var RtmClient = require('slack-client').RtmClient;
var WebClient = require('slack-client').WebClient;
var token = 'xoxp-57134296533-58450905505-107647575157-0c9b2b4cd35b7ffdc28295fa60f4de41';
var web = new WebClient(token);
var rtm = new RtmClient(token, {logLevel: 'error'});
rtm.start();
var RTM_EVENTS = require('slack-client').RTM_EVENTS;
rtm.on(RTM_EVENTS.MESSAGE, function (message) {
var channel = message.channel;
var user = message.user;
var text = message.text;
console.log("channel " , channel)
console.log("user " ,message.user)
console.log("text " ,text)
console.log('=================')
if (text == 'hello')
web.chat.postMessage(channel, 'World!', {username: "chat bot"});
if(text =="test")
web.chat.postMessage(channel, "test message 입니다.",{username:"chat bot"});
});
| cs |
RtmClient와 WebClient가 있다. RtmClient는 슬랙으로 부터 발생된 이벤트를 잡아주는 객체이다. WebClient는 해당 채널에 메세지를 전송해 주는 역할을 담당한다.
RTM_EVENTS를 console.log로 찍어보면 slack에서 제공되는 API리스트들을 볼 수있다.
API에 대한 설명은 해당 문서에 잘 나와있다.
잘 작동을 한다.
python으로도 해보려고 했는데... 메세지가 보내지는 건 되는데 RTM이벤트를 잡는게 되질 않아서 일단 보류..
댓글
댓글 쓰기