1 / 29

slack bot

slack bot, api.ai

kwanlae
Download Presentation

slack bot

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 슬랙봇 30분만에 만들기 voidopennet@gmail.com

  2. • 몸을 만들자. • 정신을 만들자. • I say “안녕”, Bot says “안녕, 난 봇이야.” • 지능을 만들자. • I say “10 더하기 20”, Bot says “30 일거야.”

  3. 몸을 만들자.

  4. • 특정 slack community owner 또는 admin 이어야 합니다. • 웹브라우저 주소창에 http://{커뮤니티 이름}.slack.com/apps 를 입력합니다. • 오른쪽 상단 박스에 해당 커뮤니티 이름 으로 sign in 이 되어 있는지 확인합니다.

  5. • 웹브라우저 주소창에 https:// my.slack.com/services/new/bot 을 입력합니다. • (해당 커뮤니티의 bot 생성 페이지로 redirect 됩니다.) • bot username 을 입력합니다.(여기서 는 bot.1) • Add bot integration 버튼을 클릭합니 다.

  6. • 내용들을 확인하고 optional input box 에 적당한 내용을 입력하거나 빈칸으로 둡니다. • Save Integration 버튼을 클릭합니다.

  7. • API Token 을 복사합니다.(정신을 만들 때 사용합니다.)

  8. • slack 앱을 실행시키거나, 웹브라우저 주 소창에 https://{커뮤니티 이 름}.slack.com 을 입력합니다. • 왼쪽 column DIRECT MESSAGES 에 방 금 만든 bot.1 이 있고, 이 bot.1 을 클릭했 을때 away 상태에 있는지 확인합니다.

  9. 몸을 만들었습니다.

  10. 정신을 만들자.

  11. • node.js 기반이라 node.js 가 설치되어 있어야 합니다. (npm 은 node.js 를 설 치하면 함께 설치됩니다.) • node.js v7.8.0 & npm v4.2.0 입니다. • 터미널을 엽니다. • 다음을 차례로 입력합니다. $ mkdir slackbot30Minutes $ cd slackbot30Minutes $ npm init --yes $ npm install botkit --save $ touch keys.js bot.js

  12. • 선호하는 IDE 를 열고, keys.js 파일에 다 음을 입력합니다. module.exports = { botAPIToken: 'xoxb-167776176980- K1Q2ehCnTpHWoDkqGQj198X2' } • botAPIToken 은 앞에서 복사한 값입니 다. • (botAPIToken 은 keys.js 파일 없이, 환 경변수로 등록하여 사용하기를 권장합니 다.)

  13. • bot.js 파일에 다음을 입력합니다. const botkit = require('botkit'); const keys = require('./keys'); const controller = botkit.slackbot({ debug: false, log: true }); controller.spawn({ token: keys.botAPIToken }).startRTM();

  14. • 터미널 창에서 다음을 입력합니다. $ node bot.js • 터미널 창에서의 로그를 확인합니다. • bot.1 의 상태가 초록색 active 로 된 것을 확인합니다. • 희미하게 정신을 차리기 시작합니다. :)

  15. • bot.js 파일에 다음을 추가합니다. const botScope = [ 'direct_message', 'direct_mention', 'mention' ]; controller.hears('안녕', botScope, (bot, message) => { bot.reply(message, '안녕, 난 봇이 야.'); });

  16. • 터미널 창에서 ctrl-c 로 기존 node process를 중단시키고 다음을 입력하여 재기동 시킵니다. $ node bot.js • 슬랙앱(또는 웹브라우저창)에서 bot.1 봇 에게 안녕 이라고 입력합니다. • bot.1 이 안녕, 난 봇이야. 라고 대답하는 지 확인합니다. • 터미널 창에서 slack API(chat.postMessage) 가 로그로 찍히 는지 확인합니다.

  17. 정신을 만들었습니다.

  18. 지능을 만들자.

  19. • http://api.ai 계정이 있다는 가정하에 시 작합니다. api.ai 계정은 누구나 쉽게 만들 수 있습니다. :) • 웹브라우저창에 http://console.api.ai 를 입력합니다. • 드롭다운 아이콘을 클릭한 후, Create new agent 를 클릭합니다.

  20. • agent 이름, 타입, 언어, 표준시를 설정하 고 SAVE 버튼을 클릭합니다. • 아직은 한국어 설정으로 하면 문제가 있 습니다.

  21. • CREATE INTENT 버튼을 클릭합니다.

  22. • INTENT 이름(plus) 을 입력합니다. • User says 아래 input box 앞에 있는 ” 를 클릭 후 @ 로 바꿉니다. • @sys. 자동완성 기능을 이용하여 @sys.number 가 나오게 하고 : 뒤에는 x 를 입력합니다. 더하기 라고 입력한 후 같은 방식으로 y 도 입력합니다. • Action 아래 input box 에 plus 라고 입 력합니다. • parameter table 이 오른쪽과 같은지 확 인합니다. • SAVE 버튼을 클릭합니다.

  23. • 오른쪽 Try it now…에 1 더하기 2 라고 입력합니다. • INTENT는 plus, ACTION은 plus, PARAMETER, VALUE에 값이 올바르게 들어오는지 확인합니다.

  24. • agent 이름 옆 톱니바퀴 아이콘을 클릭 합니다. • API keys 중 Client access token 을 복사합니다.

  25. • 터미널을 엽니다. • 다음을 입력합니다. $ npm install api-ai-botkit --save

  26. • keys.js 파일에 다음을 추가합니다. module.exports = { botAPIToken: 'xoxb-167776176980- K1Q2ehCnTpHWoDkqGQj198X2', apiaiToken: 'fa819ced5ad6464294aec36fe48ba b56' } • apiaiToken 값은 앞에서 복사한 값입니 다.

  27. • bot.js 파일에 다음을 추가합니다. const apiaiBotkit = require('api-ai-botkit'); const apiai = apiaiBotkit(keys.apiaiToken); … controller.hears('.*', botScope, (bot, message) => { apiai.process(message, bot); }); apiai.all((message, resp, bot) => { console.log(resp.result.action); }); const actionsDefault = [ 'input.unknown', 'input.welcome' ]; actionsDefault.forEach((action) => { apiai.action(action, (message, resp, bot) => { const responseText = resp.result.fulfillment.speech; bot.reply(message, responseText); }); }); apiai.action('plus', (message, resp, bot) => { const x = Number(resp.result.parameters.x); const y = Number(resp.result.parameters.y); const sum = x + y; }); … bot.reply(message, `${sum} 일거야.`);

  28. • 터미널 창에서 ctrl-c 로 기존 node process를 중단시키고 다음을 입력하여 재기동 시킵니다. $ node bot.js • 슬랙앱(또는 웹브라우저창)에서 bot.1 봇 에게 10 더하기 20 이라고 입력합니다. • 대답을 확인합니다. • 터미널 창에서 action name(plus)와 slack API(chat.postMessage) 가 로그로 찍히는지 확인합니다.

  29. 지능을 만들었습니다.

More Related