2. 목차
자료의 목적
OSX 에서 휴봇 설치하기
Slack 에 휴봇 초대하기
JS 로 휴봇 스크립팅
경험담
주의: 모든 컨텐츠는 OSX 에서 Slack, Heroku 을 사용했습니다.
3. 자료의 목적
보세요 :
- 슬랙에서 봇을 가지고 놀고 싶은 분
- javascript 에 대해 들어는 보신 분
- javascript 로 깊이없이 뭔가 하시고 싶은 분
보지 마세요 :
- 백단에서 돌아가는 모든 것을 알아야 직성이 풀리는
프로그래머
- javascript 를 한번도 들어본 적 없는 분
- 휴봇에 대해 coffee 로 스크립팅 하시고 싶은 분
4. OSX 에서 휴봇 설치하기
주의: 다루어 지지 않을 주제들.
- node.js 설치하기
- nvm 설치하기
휴봇 공식 인스톨 가이드 (영어) :
https://hubot.github.com/docs/
영어가 가능하다면 위 링크가 한 200 배 정도 정확합니다. b
5. OSX 에서 휴봇 설치하기
`yo` 명령어로 `hubot-generator` 설치하기
만약 시스템에 권한이 부족하면 아래와 같은 에러가 발생할 수 있습니다.
`sudo` 명령어로 에러 넘어가기 :
6. OSX 에서 휴봇 설치하기
봇을 위한 디렉토리 생성
프로젝트 디렉토리로 이동
봇 등록
위 명령어를 실행하면 아래와 같은 화면이 출력됩니다.
7. OSX 에서 휴봇 설치하기
더 진행하기 위해 몇개의 필드를 터미널에서 입력해야 합니다.
당황하지 말고 채워봅시다.
[ 필드 목록 ]
- Owner : 그냥 봇 주인 이름.
- Bot name : 불릴 봇의 이름. 예를 들면, 봇 이름이 ‘testbot’ 라면 `testbot
what is your name?`
- Description : 봇에 대한 설명(넘어가도 됨).
- Adapter : 봇이 사용할 어댑터. 디폴트는 ‘campfire’. 나중에 ‘Procfile’ 에서
변경할 수 있음
예를 들면, 우측과 같이 입력하시면
됩니다.
어차피 adapter 는 slack 으로 이후에
바꿀 겁니다.
8. OSX 에서 휴봇 설치하기
새로 생성된 폴더와 파일들에 대해 알아봅니다. `ls` 명령으로 현재 하위
아이템을 볼 수 있습니다 :D
[파일 목록]
- Procfile : ‘Adapter’ 를 변경할 수 있습니다.
- external-scripts.js : 휴봇에서 사용할 스크립트를 나열합니다. 디테일은
생략한다. https://www.npmjs.com/browse/keyword/hubot-scripts
- READ.md : git 에서 사용하는 파일. ‘github’ 같은 서비스를 사용한다면, 이
파일이 가장 먼저 노출됩니다.
- hubot-scripts.json : 사용자가 정의한 추가 스크립트 목록이 나열됩니다.
- scripts(d) : 사용자 정의 스크립트를 담는 디렉토리. 반드시 추가 후, hubot-
scripts.js 에도 명시해 줍시다.
- bin(d) : 휴봇 실행 파일이 들어 있는 디렉토리.
9. OSX 에서 휴봇 설치하기
아래 커맨드로 실행 할 수 있습니다 :D
지금은 터미널 프롬프트가 전부입니다. 그래도 간단히 테스트를 위해 help 를 호출해 봅
‘Botname’ 이 들어가야 합니다.
간단하게 echo 명령어로 테스트 합니다.
이제 Slack 과 연동해 봅시다!
10. Slack 에 휴봇 초대하기
들어가기 전에 …
- 슬랙 계정은 있다고 가정합니다.
- heroku tool-belt 는 깔려 있다고 가정합니다.
- 공식 가이드 주소 (영어) : https://github.com/slackhq/hubot-slack
1. ‘slack’ 으로 어댑터를 변경합니다.
`vi` 명령어의 결과는 아래와 같습니다.
파일을 수정해야 하기 때문에 ‘insert mode’ 로 전환합니다. ‘a’ 나 ‘I’ 키를 눌러
페이지 하단정보가 아래와 같이 되게 합니다.
11. Slack 에 휴봇 초대하기
2. 아래 라인처럼 변경합니다. 라인의 맨 앞에 ‘#’ 가 있는 라인은 주석이니,
생략 가능합니다.
‘esc’ 키를 눌러 관리모드로 들어가고 ‘:wq’ 를 쳐서 빠져나옵니다. ‘w’ 는 를
‘write’ 의미하고 ‘q’ 는 ‘quit’ 를 의미합니다.
팁. ‘:set nu’ 를 치면 vi 가 좌측에 라인 넘버를 표기 합니다. 긴 스크립트를
읽을 때 매우 유용합니다.
12. Slack 에 휴봇 초대하기
3. Heroku 에 배포하기.
Heroku 에 대한 정보는 생략한다. http://www.heroku.com
아래와 같은 결과를 볼 수 있습니다.
마지막 라인에서 Heroku git 주소를 확인할 수 있습니다.
앞으로 진행 상황은 저 git URL 의 내용과 동기화될 것입니다.
이 경우에는,
https://git.heroku.com/testbotapp.git 가 heroku git 주소가 됩니다.
13. Slack 에 휴봇 초대하기
4. 헤로쿠 redistogo addon 설치하기.
Hubot 이 redis DB 를 사용하기 때문에 애드온을 설치해야 합니다.(로컬에
설치할 필요는 없습니다.)
heroku addons:create (addon name) –app (your app name in Heroku)
녹색 : Heroku 명령어.
귤색 : 변수
보라색 : 생략 가능한 부분 (만약 헤로쿠 앱이 복수라면 –app 옵션으로 목적
애플리케이션을 명시해 주어야 합니다.)
* 헤로쿠 애드온 사용을 위해서는 애드온이 무료라고 할지라도 계좌 정보를
등록해야 합니다. 등록하지 않으면 애드온을 사용할 수 없습니다.
14. Slack 에 휴봇 초대하기
5-1. Heroku 설정 추가하기.
Slack 연동을 위해서 HEROKU URL 과 HEROKU_SLACK_TOKEN 을 설정해 주어야
합니다. 추가합시다.
아래 URL 로 접근하세요:
https://{방이름}.slack.com/services/new/hubot
봇 이름을 넣고 다음 페이지로 진행하면, 다음 페이지 TOKEN 이 있습니다.
(가장 상단에 있습니다)
15. Slack 에 휴봇 초대하기
5-2. Heroku 설정 추가하기.
터미널에서 설정을 추가합니다.
HEROKU_URL 은 heroku.com 페이지에서 찾을 수 있습니다.
[Setting] 탭으로 가시면 페이지 중간쯤 [info] 섹션에 있습니다.
16. Slack 에 휴봇 초대하기
6. 봇 실행 시키고 Slack 에서 확인하기.
그전에 현재 코드를 heroku 의 git으로 push 해야 합니다.
만약 이미 heroku app 이 있다면 추가 작업이 필요합니다.
프로젝트 최상단에서 push 전에 아래 명령어를 입력합니다.
아래 명령어로 heroku 앱을 실행합니다.
슬랙에 가면 [DIRECT MESSAGES] 코너에 아래와 같이 봇이 추가된 걸 볼 수
있습니다.
17. JS 로 휴봇 스크립팅
coffee script 아닙니다.
기초: 커스텀 스크립트를 ‘scripts’ 폴더 아래에 작성합니다.
18. JS 로 휴봇 스크립팅
스크립트 작성 후에, ‘hubot-scripts.json’ 파일을 수정합니다.
넣을 때는 확장자를 제외하고 넣으시면 됩니다.
예를 들면, 좌측은 새로 추가된 스크립트들이고, 우측은 그 스크립트들을
hubot-scripts.json에 반영한 모습입니다.
19. JS 로 휴봇 스크립팅
마지막으로 ‘add’, ‘commit’ , ‘push’ 명령을 실행합니다.
그리고 ‘heroku open’ 를 이용해 앱을 작동시키세요.
슬랙에서 아래와 같이 실행 결과를 확인할 수 있습니다 …
20. 경험담
Tips from my experiences.
1. heroku logs 확인하기.
js 스크립팅에 대한 공식 가이드를 찾을 수 없기 때문에 헤로쿠에서 로그를
출력하는 것이 매우 유용합니다. 이 방식으로 내장된 오브젝트에 대한
정보를 알 수 있습니다.
2.휴봇에서는 DOM 엘리먼트 사용불가.
Hubot 은 ‘document’ 오브젝트(window 도 마찬가지)를 사용할 수 없습니다.
(XMLHttpRequest 오브젝트도 없음).
21. 경험담
Tips from my experiences.
3. ajax 는 내부 API 를 이용해야 합니다.
예를 들면…
4. slack 에서 어떤 API들은 봇이 사용할 수 없습니다.
예를 들면, kick API 는 봇에 의해 불릴 호출될 수 없습니다. 보다 자세한
정보를 위해서는 공식 API 문서를 참고하세요.
URL : https://api.slack.com/methods
22. 경험담
Tips from my experiences.
5. js 로 작성하더라도 coffee script 코드를 참조하기.
javascript 스크립팅에 대한 공식 문서를 찾을 수 없었습니다. 그래서 내장
객체가 어떤 요소나 펑션을 가지고 있는지 모르기 때문에 github 의 coffee 를
참조하는 게 좋습니다. 특히 ‘src’ 디렉토리 안에 있는 coffee 파일들은 js 의
오브젝트와 거의 일치합니다.
URL : https://github.com/github/hubot/tree/master/src
예를 들면, message, brain, robot, user 같은 부분들은 heroku logs로 찍어보니
확인되더라구요.