Slack의 Bot(hubot)을 만들어 보자
소개
최근 이거를 읽고 무성하게 ChatBot을 만들고 싶어졌다.
Software Design 2016년 1월호 | 기술평론사
Slack으로 손쉽게 공수 관리 «Server Works 엔지니어 블로그
그래서, 시작에 Slack의 bot 만들기를 해 보려고 생각한다.
bot의 종류
재밌게 slack bot
에서 구구 해 보았더니, hubot 되는 것이 일반적인 것 같다.
그 밖에도 WebHooks를 사용하는 것도 있는 것 같지만, 다음 단계로 하려고 한다.
hubot 추가
여기에서 Integration할 App을 선택할 수 있다.
App Directory | Slack
hubot
에서 검색하면 앱이 나오므로 도입할 팀을 선택한다.
Hubot | Slack
API 토큰이나 Bot의 이름이나 여러가지 설정할 수 있는 화면에 날기 때문에, 적당히 이름을 붙여 아이콘을 설정하면, 우선 bot 사용자가 추가되었다.
bot의 내용 만들기
bot의 자코는 할 수 있었기 때문에, 다음에 내용을 만든다.
우선은 수중의 Macbook으로 조립한다.
분명히 Node.js가 움직이는 환경과 npm이 필요하다.
수중의 환경은 이미 도입이 끝났으므로 도입 방법은 생략한다.
$ node -v
v0.12.7
$ npm -v
2.11.3
우선 개발에 필요한 모듈을 npm 경유로 인스톨 한다.
다음 네 가지가 필요하다.
재밌게
slack bot
에서 구구 해 보았더니, hubot 되는 것이 일반적인 것 같다.그 밖에도 WebHooks를 사용하는 것도 있는 것 같지만, 다음 단계로 하려고 한다.
hubot 추가
여기에서 Integration할 App을 선택할 수 있다.
App Directory | Slack
hubot
에서 검색하면 앱이 나오므로 도입할 팀을 선택한다.
Hubot | Slack
API 토큰이나 Bot의 이름이나 여러가지 설정할 수 있는 화면에 날기 때문에, 적당히 이름을 붙여 아이콘을 설정하면, 우선 bot 사용자가 추가되었다.
bot의 내용 만들기
bot의 자코는 할 수 있었기 때문에, 다음에 내용을 만든다.
우선은 수중의 Macbook으로 조립한다.
분명히 Node.js가 움직이는 환경과 npm이 필요하다.
수중의 환경은 이미 도입이 끝났으므로 도입 방법은 생략한다.
$ node -v
v0.12.7
$ npm -v
2.11.3
우선 개발에 필요한 모듈을 npm 경유로 인스톨 한다.
다음 네 가지가 필요하다.
bot의 자코는 할 수 있었기 때문에, 다음에 내용을 만든다.
우선은 수중의 Macbook으로 조립한다.
분명히 Node.js가 움직이는 환경과 npm이 필요하다.
수중의 환경은 이미 도입이 끝났으므로 도입 방법은 생략한다.
$ node -v
v0.12.7
$ npm -v
2.11.3
우선 개발에 필요한 모듈을 npm 경유로 인스톨 한다.
다음 네 가지가 필요하다.
$ npm install -g hubot yo generator-hubot coffee-script
오랫동안 도중 경과가 흐르지만 무사 설치 완료.
조속히 제너레이터를 두드려 본다.
$ mkdir hubot-sushi
$ cd hubot-sushi
$ yo hubot
? ==========================================================================
We're constantly looking for ways to make yo better!
May we anonymously report usage statistics to improve the tool over time?
More info: https://github.com/yeoman/insight & http://yeoman.io
========================================================================== (Y/n)
_____________________________
/ \
//\ | Extracting input for |
////\ _____ | self-replication process |
//////\ /_____\ \ /
======= |[^_/\_]| /----------------------------
| | _|___@@__|__
+===+/ /// \_\
| |_\ /// HUBOT/\\
|___/\// / \\
\ / +---+
\____/ | |
| //| +===+
\// |xx|
? Owner 適当な名前 <適当なメールアドレス>
? Bot name sushi
? Description We Love sushi!!!
? Bot adapter (campfire) slackgot back false
? Bot adapter slack
create bin/hubot
create bin/hubot.cmd
create Procfile
create README.md
create external-scripts.json
create hubot-scripts.json
create .gitignore
create package.json
create scripts/example.coffee
create .editorconfig
_____________________________
_____ / \
\ \ | Self-replication process |
| | _____ | complete... |
|__\\| /_____\ \ Good luck with that. /
|//+ |[^_/\_]| /----------------------------
| | _|___@@__|__
+===+/ /// \_\
| |_\ /// HUBOT/\\
|___/\// / \\
\ / +---+
\____/ | |
| //| +===+
\// |xx|
(以下略)
도중 몇몇 bot의 이름 등을 들을 수 있지만, 좋은 느낌에 응답한다.
설치가 완료되면, 우선 Hubot를 움직여 보자.
heroku 얽힌 오류가 나오는 것 같지만, 일단 무시하고 좋을 것 같은 느낌.
$ ./bin/hubot
hubot-sushi> [Thu Jan 28 2016 01:10:58 GMT+0900 (JST)] ERROR hubot-heroku-alive included, but missing HUBOT_HEROKU_KEEPALIVE_URL. `heroku config:set HUBOT_HEROKU_KEEPALIVE_URL=$(heroku apps:info -s | grep web-url | cut -d= -f2)`
[Thu Jan 28 2016 01:10:58 GMT+0900 (JST)] INFO hubot-redis-brain: Using default redis on localhost:6379
sushi>
sushi> ping
sushi> sushi ping
sushi> PONG
sushi> exit
ping
라고 치면 PONG
라고 돌려주었다.덧붙여 이름을 잘못하면 상대로 해주지 않는 모양.
자코와 내용물을 연결
아무래도 일반적으로는 heroku에 돌진하는 것이 많은 것 같지만, 요금 개정에 의해 무료 테두리로 24시간 가동 확실히 할 수 없게 된 것 같다.
Heroku의 새로운 요금에 대해
그래서 일단 수중의 환경(Macbook)을 Slack을 연결해 본다.
Slack의 Hubot 설정 화면에서 API 토큰을 확인하고 환경 변수로 설정합니다.
$ export HUBOT_SLACK_TOKEN=<API Token>
Slack 어댑터를 지정하고 Hubot을 시작합니다.
$ ./bin/hubot --adapter slack
[Thu Jan 28 2016 01:34:15 GMT+0900 (JST)] INFO Connecting...
[Thu Jan 28 2016 01:34:17 GMT+0900 (JST)] INFO Logged in as sushi of bdig, but not yet connected
[Thu Jan 28 2016 01:34:19 GMT+0900 (JST)] INFO Slack client now connected
[Thu Jan 28 2016 01:34:19 GMT+0900 (JST)] ERROR hubot-heroku-alive included, but missing HUBOT_HEROKU_KEEPALIVE_URL. `heroku config:set HUBOT_HEROKU_KEEPALIVE_URL=$(heroku apps:info -s | grep web-url | cut -d= -f2)`
[Thu Jan 28 2016 01:34:20 GMT+0900 (JST)] INFO hubot-redis-brain: Using default redis on localhost:6379
아무래도 무사히 연결된 것 같다. 여전히 heroku의 에러는 일단 무시하고 좋을 것 같다.
조속히 Hubot과 DirectMessage를 해보자.
제대로 응답 해 주었다!
DM의 경우는 명령을 던지는 것만으로 좋은 것 같다.
Channel내라면 어떻게 될까.
시험에 Hubot과 두 명의 Channel을 만들고 명령을 던져 보았다.
커맨드 단체로는 응답하지 않는 것 같다.
mention 되어, Hubot의 이름을 최초로 붙이는 것으로 호출할 수 있는 것 같다.
다음 번
우선은 Hubot의 만드는 방법, Slack와의 제휴 방법까지를 해 보았다.
이대로라면 수중의 Mac을 연결 없이 할 필요가 나오기 때문에, 다음 번은 어딘가의 클라우드상에 배포해 보려고 생각한다.
참고
이런 나라도 30분만에 Slack의 bot를 만들 수 있었다. - 알라타나 엔지니어 블로그
Slack에서 Hubot 사용하기 - Qiita
Hubot 설치 - Qiita
Software Design 2016년 1월호 | 기술평론사
Reference
이 문제에 관하여(Slack의 Bot(hubot)을 만들어 보자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mochidamochiko/items/29c2d77715d8a1ff062a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ export HUBOT_SLACK_TOKEN=<API Token>
$ ./bin/hubot --adapter slack
[Thu Jan 28 2016 01:34:15 GMT+0900 (JST)] INFO Connecting...
[Thu Jan 28 2016 01:34:17 GMT+0900 (JST)] INFO Logged in as sushi of bdig, but not yet connected
[Thu Jan 28 2016 01:34:19 GMT+0900 (JST)] INFO Slack client now connected
[Thu Jan 28 2016 01:34:19 GMT+0900 (JST)] ERROR hubot-heroku-alive included, but missing HUBOT_HEROKU_KEEPALIVE_URL. `heroku config:set HUBOT_HEROKU_KEEPALIVE_URL=$(heroku apps:info -s | grep web-url | cut -d= -f2)`
[Thu Jan 28 2016 01:34:20 GMT+0900 (JST)] INFO hubot-redis-brain: Using default redis on localhost:6379
우선은 Hubot의 만드는 방법, Slack와의 제휴 방법까지를 해 보았다.
이대로라면 수중의 Mac을 연결 없이 할 필요가 나오기 때문에, 다음 번은 어딘가의 클라우드상에 배포해 보려고 생각한다.
참고
이런 나라도 30분만에 Slack의 bot를 만들 수 있었다. - 알라타나 엔지니어 블로그
Slack에서 Hubot 사용하기 - Qiita
Hubot 설치 - Qiita
Software Design 2016년 1월호 | 기술평론사
Reference
이 문제에 관하여(Slack의 Bot(hubot)을 만들어 보자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mochidamochiko/items/29c2d77715d8a1ff062a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Slack의 Bot(hubot)을 만들어 보자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mochidamochiko/items/29c2d77715d8a1ff062a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)