휴봇-슬랙 osx 설치

23
Juneyoung Oh I-ON Communications 2015.08.01 슬슬 슬슬 슬슬슬슬

Upload: juneyoung-oh

Post on 16-Apr-2017

1.414 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: 휴봇-슬랙 OSX 설치

Juneyoung OhI-ON Communications

2015.08.01

슬랙 휴봇 설치하기

Page 2: 휴봇-슬랙 OSX 설치

목차자료의 목적

OSX 에서 휴봇 설치하기Slack 에 휴봇 초대하기

JS 로 휴봇 스크립팅경험담주의 : 모든 컨텐츠는 OSX 에서 Slack, Heroku 을 사용했습니다 .

Page 3: 휴봇-슬랙 OSX 설치

자료의 목적보세요 :- 슬랙에서 봇을 가지고 놀고 싶은 분- javascript 에 대해 들어는 보신 분- javascript 로 깊이없이 뭔가 하시고 싶은 분

보지 마세요 :- 백단에서 돌아가는 모든 것을 알아야 직성이 풀리는 프로그래머- javascript 를 한번도 들어본 적 없는 분- 휴봇에 대해 coffee 로 스크립팅 하시고 싶은 분

Page 4: 휴봇-슬랙 OSX 설치

OSX 에서 휴봇 설치하기주의 : 다루어 지지 않을 주제들 .- node.js 설치하기- nvm 설치하기

휴봇 공식 인스톨 가이드 ( 영어 ) :https://hubot.github.com/docs/

영어가 가능하다면 위 링크가 한 200 배 정도 정확합니다 . b

Page 5: 휴봇-슬랙 OSX 설치

OSX 에서 휴봇 설치하기`yo` 명령어로 `hubot-generator` 설치하기

만약 시스템에 권한이 부족하면 아래와 같은 에러가 발생할 수 있습니다 .

`sudo` 명령어로 에러 넘어가기 :

Page 6: 휴봇-슬랙 OSX 설치

OSX 에서 휴봇 설치하기봇을 위한 디렉토리 생성프로젝트 디렉토리로 이동봇 등록위 명령어를 실행하면 아래와 같은 화면이 출력됩니다 .

Page 7: 휴봇-슬랙 OSX 설치

OSX 에서 휴봇 설치하기더 진행하기 위해 몇개의 필드를 터미널에서 입력해야 합니다 . 당황하지 말고 채워봅시다 .

[ 필드 목록 ]- Owner : 그냥 봇 주인 이름 .- Bot name : 불릴 봇의 이름 . 예를 들면 , 봇 이름이 ‘ testbot’ 라면 `testbot

what is your name?`- Description : 봇에 대한 설명 ( 넘어가도 됨 ).- Adapter : 봇이 사용할 어댑터 . 디폴트는 ‘ campfire’. 나중에 ‘ Procfile’ 에서 변경할 수 있음예를 들면 , 우측과 같이 입력하시면 됩니다 .어차피 adapter 는 slack 으로 이후에 바꿀 겁니다 .

Page 8: 휴봇-슬랙 OSX 설치

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) : 휴봇 실행 파일이 들어 있는 디렉토리 .

Page 9: 휴봇-슬랙 OSX 설치

OSX 에서 휴봇 설치하기아래 커맨드로 실행 할 수 있습니다 :D

지금은 터미널 프롬프트가 전부입니다 . 그래도 간단히 테스트를 위해 help 를 호출해 봅시다 .

‘Botname’ 이 들어가야 합니다 .

간단하게 echo 명령어로 테스트 합니다 .

이제 Slack 과 연동해 봅시다 !

Page 10: 휴봇-슬랙 OSX 설치

Slack 에 휴봇 초대하기들어가기 전에 …- 슬랙 계정은 있다고 가정합니다 .- heroku tool-belt 는 깔려 있다고 가정합니다 .- 공식 가이드 주소 ( 영어 ) : https://github.com/slackhq/hubot-slack

1. ‘slack’ 으로 어댑터를 변경합니다 .`vi` 명령어의 결과는 아래와 같습니다 .

파일을 수정해야 하기 때문에 ‘ insert mode’ 로 전환합니다 . ‘a’ 나 ‘ I’ 키를 눌러 페이지 하단정보가 아래와 같이 되게 합니다 .

Page 11: 휴봇-슬랙 OSX 설치

Slack 에 휴봇 초대하기2. 아래 라인처럼 변경합니다 . 라인의 맨 앞에 ‘ #’ 가 있는 라인은 주석이니 , 생략 가능합니다 .

‘esc’ 키를 눌러 관리모드로 들어가고 ‘ :wq’ 를 쳐서 빠져나옵니다 . ‘w’ 는 를 ‘ write’ 의미하고 ‘ q’ 는 ‘ quit’ 를 의미합니다 .

팁 . ‘:set nu’ 를 치면 vi 가 좌측에 라인 넘버를 표기 합니다 . 긴 스크립트를 읽을 때 매우 유용합니다 .

Page 12: 휴봇-슬랙 OSX 설치

Slack 에 휴봇 초대하기3. Heroku 에 배포하기 . Heroku 에 대한 정보는 생략한다 . http://www.heroku.com

아래와 같은 결과를 볼 수 있습니다 .

마지막 라인에서 Heroku git 주소를 확인할 수 있습니다 . 앞으로 진행 상황은 저 git URL 의 내용과 동기화될 것입니다 .이 경우에는 ,https://git.heroku.com/testbotapp.git 가 heroku git 주소가 됩니다 .

Page 13: 휴봇-슬랙 OSX 설치

Slack 에 휴봇 초대하기4. 헤로쿠 redistogo addon 설치하기 . Hubot 이 redis DB 를 사용하기 때문에 애드온을 설치해야 합니다 .( 로컬에 설치할 필요는 없습니다 .)

heroku addons:create (addon name) –app (your app name in Heroku)

녹색 : Heroku 명령어 . 귤색 : 변수보라색 : 생략 가능한 부분 ( 만약 헤로쿠 앱이 복수라면 – app 옵션으로 목적 애플리케이션을 명시해 주어야 합니다 .)

* 헤로쿠 애드온 사용을 위해서는 애드온이 무료라고 할지라도 계좌 정보를 등록해야 합니다 . 등록하지 않으면 애드온을 사용할 수 없습니다 .

Page 14: 휴봇-슬랙 OSX 설치

Slack 에 휴봇 초대하기5-1. Heroku 설정 추가하기 . Slack 연동을 위해서 HEROKU URL 과 HEROKU_SLACK_TOKEN 을 설정해 주어야 합니다 . 추가합시다 .

아래 URL 로 접근하세요 :https://{방이름}.slack.com/services/new/hubot

봇 이름을 넣고 다음 페이지로 진행하면 , 다음 페이지 TOKEN 이 있습니다 . (가장 상단에 있습니다 )

Page 15: 휴봇-슬랙 OSX 설치

Slack 에 휴봇 초대하기5-2. Heroku 설정 추가하기 . 터미널에서 설정을 추가합니다 .

HEROKU_URL 은 heroku.com 페이지에서 찾을 수 있습니다 .[Setting] 탭으로 가시면 페이지 중간쯤 [info] 섹션에 있습니다 .

Page 16: 휴봇-슬랙 OSX 설치

Slack 에 휴봇 초대하기6. 봇 실행 시키고 Slack 에서 확인하기 . 그전에 현재 코드를 heroku 의 git 으로 push 해야 합니다 .

만약 이미 heroku app 이 있다면 추가 작업이 필요합니다 .프로젝트 최상단에서 push 전에 아래 명령어를 입력합니다 .

아래 명령어로 heroku 앱을 실행합니다 .

슬랙에 가면 [DIRECT MESSAGES] 코너에 아래와 같이 봇이 추가된 걸 볼 수 있습니다 .

Page 17: 휴봇-슬랙 OSX 설치

JS 로 휴봇 스크립팅coffee script 아닙니다 .

기초 : 커스텀 스크립트를 ‘ scripts’ 폴더 아래에 작성합니다 .

Page 18: 휴봇-슬랙 OSX 설치

JS 로 휴봇 스크립팅스크립트 작성 후에 , ‘hubot-scripts.json’ 파일을 수정합니다 .넣을 때는 확장자를 제외하고 넣으시면 됩니다 .

예를 들면 , 좌측은 새로 추가된 스크립트들이고 , 우측은 그 스크립트들을 hubot-scripts.json 에 반영한 모습입니다 .

Page 19: 휴봇-슬랙 OSX 설치

JS 로 휴봇 스크립팅마지막으로 ‘ add’, ‘commit’ , ‘push’ 명령을 실행합니다 .그리고 ‘ heroku open’ 를 이용해 앱을 작동시키세요 .

슬랙에서 아래와 같이 실행 결과를 확인할 수 있습니다 …

Page 20: 휴봇-슬랙 OSX 설치

경험담Tips from my experiences.

1. heroku logs 확인하기 .js 스크립팅에 대한 공식 가이드를 찾을 수 없기 때문에 헤로쿠에서 로그를 출력하는 것이 매우 유용합니다 . 이 방식으로 내장된 오브젝트에 대한 정보를 알 수 있습니다 .

2. 휴봇에서는 DOM 엘리먼트 사용불가 .Hubot 은 ‘ document’ 오브젝트 (window 도 마찬가지 ) 를 사용할 수 없습니다 . (XMLHttpRequest 오브젝트도 없음 ).

Page 21: 휴봇-슬랙 OSX 설치

경험담Tips from my experiences.

3. ajax 는 내부 API 를 이용해야 합니다 .예를 들면…

4. slack 에서 어떤 API 들은 봇이 사용할 수 없습니다 .예를 들면 , kick API 는 봇에 의해 불릴 호출될 수 없습니다 . 보다 자세한 정보를 위해서는 공식 API 문서를 참고하세요 . URL : https://api.slack.com/methods

Page 22: 휴봇-슬랙 OSX 설치

경험담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 로 찍어보니 확인되더라구요 .

Page 23: 휴봇-슬랙 OSX 설치

감사합니다 !