ãŸã£ããæ¹é Slackãäœã£ãŠæ¥ã
ã®äœæ¥ã楜ããRTA Day1
ããã°ãã¯ãã¿ãªããSlack䜿ã£ãŠãŸããïŒ
ããã°ã©ãã³ã°ãåã人ãã¡ãã ããã䜿ã£ãŠããã¢ããªã®ä»£è¡šæ Œ Slack ã§ãããæ§ã
ãªå©ç¹ããããã奜ãããŠãŸããããåãé«å°ã«å
¥åŠãNMCãšããéšæŽ»ã«å
¥ã£ãŠä»¥æ¥ãã§ã«SlackæŽ2幎ã§ããã®æè»œãã»äŸ¿å©ãã»æ¡åŒµæ§ããé·ãéèã«ãªã£ãŠããŸãã
åãå人çã«Slackã®1çªã®ã¡ãªããã ãšæãã®ã¯ãæ§ã
ãªã¢ããªã±ãŒã·ã§ã³ãšé£æºã§ãããã®æ¡åŒµæ§ã§ããäŸãã°ã¿ã¹ã¯ç®¡çã¢ããªã®Â Trello ãSlackãšTrelloã飿ºããããšã§ãã«ãŒããšåŒã°ããTrelloã®ã¿ã¹ã¯ãèŒããŠããåªäœã®æäœãSlackããã³ãã³ãã§ã§ããããã«ãªããŸããä»ã«ãæåãªãµãŒãã¹ã§ã¯ GitHub GoogleDrive DropBox ãªã©ãSlackãšé£æºã§ããæ¥ã
ã®äœæ¥ã®çç£æ§ã®äžæã«è²¢ç®ããŠãããŸãããã®ã¢ããªé£æºæ©èœãã»ãšãã©ã®äººãæçšããŠãããããªãã§ããããã
ããããSlackã2幎䜿ã£ãŠããšè²ã
ãšäžæºç¹ãåºãŠãããã®ã§ããäŸãã°ã
飿ºå¯èœãªã¢ããªã10åããå°ãªã...ïŒãã ãææã¯ãŒã¯ã¹ããŒã¹ã¯é£æºãæŸé¡ïŒ
ã¢ããªé£æºããã¯ãããã®ã®ãSlackãã䜿çšå¯èœãªæ©èœãå°ãªããã...
Slackäžã®ã³ãã³ããé£è§£...
ãªã©ã§ãããããç¹ã«Trelloã«ãããŠã¯ã䜿çšå¯èœãªæ©èœå°ãªãåé¡ããã³ãã³ããé£è§£åé¡ãã®2ã€ãé¡èã ãšæããŠããŸããåè
ã¯ãSlackäžã§ã¯ã«ãŒãã®è¿œå ãšè¿œå æã«ãªãã·ã§ã³ãä»ãå ããããšãããããã§ããŸãããã«ãŒãããªã¹ãã®ç§»åãã¢ãŒã«ã€ããªã©ã¯ã§ããªãã§ããSlackæŽ2幎ã®åãèšããã ããã§ããªãã§ãïŒïŒïŒïŒåãåéãããŠããŠãSlackäžããã§ãç§»åãã¢ãŒã«ã€ããªã©ãã§ããããšããããšãããã°ãã£ããæããŠãã ããïŒ ä»®ã«åè
ãåã®åéãã ã£ããšããŠããåŸè
ã®åé¡ã®ããã§ãšã£ã€ãã«ãããšããç¶æ
ãçºçããŸãããŸãåŸè
ã§ãããçç£æ§ãäžããããšã«ãã¡ããã¡ãè²¢ç®ããŠããŠãåã«ã¯ãšãŠãæ®å¿µã§ãããã
ãããªæãã§Slackã«ããã§ãŒã«"å«ãªæã"ãæããŠããåã¯ããæããŸããã
ãSlackãèªåã䜿ãããããããæãã«ãã€ãã§ã«äœæ¥ã楜ããããããã«éæ¹é ãæœãããïŒïŒïŒã
ãšããèš³ã§ãããŸã£ããæ¹é Slackãäœã£ãŠæ¥ã
ã®äœæ¥ã楜ããRTAããšé¡ããŠããŸã£ãããšæ¥ã«ã¡ãæ°ããªããæ¹é Slackãäœã£ãŠããããšæããŸãïŒ
å®è¡ç°å¢ã¯ä»¥äžã®éãã§ãã
macOS Sierra ver. 10.12.6 npm ver. 5.8.0 node ver. v9.9.0
ããã§ã¯ãæåŸãŸã§ãã£ããããŠãã£ãŠã
Day1 : æ§æãèããã仿§ãèããããããã¹ãããã...
botãå©çšããŠSlackäžã§ã³ãã³ãå®è¡ãã
Slackæ¹é ãããïŒãšæ±ºããã®ã§ãŸãæåã«ãèªäœã³ãã³ãã¯Slackã§å®è¡å¯èœãªã®ãããèããŸãããïŒãããäžå¯èœã ãšããããªããããèšç»ãé£èªããããšã«ãªãïŒãããŠè³ã£ãçµè«ã¯ ãbotãäœã£ãŠbotåŒã³åºãã§äœæ¥ã代è¡ããããïŒãã§ãããSlackã«ã¯ Hubot ãšåŒã°ããæ¡åŒµæ§ã®é«ãbotã远å ã§ãã飿ºã¢ããªããããŸããbotãåŒã³åºãããæã®å®è¡ã¹ã¯ãªãããCoffeeScriptã§èªç±ã«æžããã®ã§ããã®ã¹ã¯ãªããã§WebAPIã«ã¢ã¯ã»ã¹ããã°æ§ã
ãªWebã¢ããªã±ãŒã·ã§ã³ãšSlackäžã®botã®é£æºãå®çŸã§ããŸãã
æ¹éãæ±ºãŸã£ãã®ã§æ¬¡ã«ã¢ããªæ§æãèããŸããbotã«æäœãããã¢ããªã§ãããæåã«äŸã«åºããTrelloã«ããŸããHubotã®ä»æ§äžã
Slackã®ã³ãã³ãã§HubotãåŒã³åºã
Hubotãã³ãã³ããèªã¿ããã«ãã£ãã¹ã¯ãªãããå®è¡
ãšããããšãè¡ãããã®ã§ãã¢ããªæ§æã«çµã¿èŸŒãã§èããŠãããŸããçµæã
ãããããSlackäžã§äœ¿ãããTrelloæäœã®ã³ãã³ãã«å¯Ÿå¿ããã¹ã¯ãªãããHubotå
ã«çšæããŠãã
SlackããTrelloã®åäœãèšè¿°ããã³ãã³ããå®è¡ãHubotãã³ãã³ããèªã¿ããã«ãã£ãã¹ã¯ãªãããå®è¡ãã
ã¹ã¯ãªãããTrello Developer APIãå©çšãåäœãå®è¡ãã
åäœçµæãªã©æ§ã
ãªæ
å ±ããã£ãŒãããã¯ãšããSlackã«è¡šç€ºããïŒHubotã«POSTãããïŒ
ãšããæ§æã«ããŠã¿ãããšã«ããŸããã
Slackã¯ãŒã¯ã¹ããŒã¹ãšbotã®èšå®
botã®æ§æã決ãŸã£ãã®ã§æ¬¡ã«éçºã«äœ¿ãããã®ãã¹ãçšã¯ãŒã¯ã¹ããŒã¹ãšHubotãçšæããŸãããå¿
èŠæ
å ±ãå
¥åããŠSlackã¯ãŒã¯ã¹ããŒã¹ã建ãŠAppããHubotãAddããã ãã§ããHubotã®addãçµãã£ãåŸãHubotã®ããã©ã®ãããã£ãŒã«ç»åã§ã¯å³æ°ãªããªãšæã£ãã®ã§ãHubotã®Configureã®èšå®ããããã以äžã®ããã«ããŸããã
ããã³ã§ããïŒïŒïŒïŒ
ããã³ãšããããã ã®ç
©æ©ã§ããããããã¡ãªã¿ã«ç»åã¯ãã¢ã€ãã«ãã¹ã¿ãŒã·ã³ãã¬ã©ã¬ãŒã«ãºãã«ç»å Žããåã奜ããªã¢ã€ã㫠森ä¹
ä¿ä¹ã
ã¡ããã§ããæšããäœæ¥ãæäŒã£ãŠããããšãæé«ã§ã¯ãªãã§ããããã
ã¿ãŒããã«äžã§botãšããåãããŠã¿ã
ããã¹ãçšã®SlackãšHubotã®ã»ããã£ã³ã°ãçµãã£ããšããã§ãã€ãã«HubotãåãããŠã¿ãŸãã 以äžã®Hubotãšã®ããåãã®ã³ãŒãã¯ãã®èšäº(*1)ãšãã®èšäº(*2)ãåèã«ããŸããã Hubot, CoffeeScriptã¯Node.jsã®ããã±ãŒãžãããŒãžã£ã®npmã§ç®¡çãããŠããã®ã§æ¬¡ã®ã³ãã³ããå®è¡ããŠHubotãªã©ãã€ã³ã¹ããŒã«ã
$ sudo npm install -g hubot yo generator-hubot coffee-script
ãããã§Hubotãšãã®ä»ã®ããã±ãŒãžãã€ã³ã¹ããŒã«ã§ããŸãããç¶ããŠHubotãèµ·åããŠã¿ãŸãããã以äžã®ã³ãã³ããå©ããŸãã
$ mkdir <some dir name> $ cd <some dir name> $ yo hubot
âãããªå¥ŽãåŠçã®ãã°ã£ãœãã®ãšäžç·ã«åºãŠããŸãããã®åŸ
ã®å
¥åãæ±ããããã®ã§æåã®3ã€ãèªç±ã«ãæåŸã® Bot Adapter ã ãããã©ã«ãã® campfire ãšå
¥åããŠã¿ãŸãã
åŠçãçµãã£ããã¿ãŒããã«ããHubotãšããåãã§ããããã«ãªã£ãŠããã®ã§ãã³ãã³ãå®è¡ã§ããåãããŸãããïŒãŸãlsã³ãã³ãã§ãã£ã¬ã¯ããªâ ãã©ããªã£ããã¿ãŠã¿ãŸãã
total 128 -rw-r--r-- 1 501 20 27 3 30 00:31 Procfile -rw-r--r-- 1 501 20 7844 3 30 00:31 README. md drwxr-xr-x 4 501 20 136 3 30 00:31 bin -rw-r--r-- 1 501 20 213 3 30 00:31 external-scripts.json -rw-r--r-- 1 501 20 2 3 30 00:31 hubot-scripts.json drwxr-xr-x 110 501 20 3740 3 30 00:31 node_modules -rw-r--r-- 1 501 20 39028 3 30 00:31 package-lock.json -rw-r--r-- 1 501 20 616 3 30 00:31 package.json drwxr-xr-x 3 501 20 102 3 30 00:31 scripts
ãã®äžã«ãã bin ã«å®è¡ã³ãã³ããã scripts ã«å®è¡ã¹ã¯ãªãããå
¥ã£ãŠããŸããæå㯠example.coffee ãšãããã¡ã€ã«ããå
¥ã£ãŠãªãã®ã§ hello.coffee ãšããå®è¡ã¹ã¯ãªãããçæããå®éã«Hubotã§åãããŠã¿ãŸãã scriptsãã©ã«ãå
ã«å®è¡ã¹ã¯ãªãããäœã以äžãå
¥åããŠä¿åããŸãã
# Description: # Hubotãšæšæ¶ # # Commands: # hubot hello - Reply with "HELLO" module.exports = (robot) -> robot.respond /HELLO$/i, (msg) -> msg.send "HELLO"
ä¿åãããæ¬¡ã¯Hubotãèµ·åãå®éã«HELLOããæéã§ãããŸã以äžãå®è¡ã
è²ã
åºãåŸããäžåºŠEnterãæŒããšãHubotãã³ãã³ããåŸ
ã¡åããŠãç¶æ
ã«ãªããŸããããã§ä»¥äžãå®è¡ãããšã
ãšããããã«ãªããŸããããã§Hubotãšã®ããåãã¯å®äºã§ããexitãæã¡èŸŒããšHubotã®åŸ
ã¡åãç¶æ
ããæããããŸãã
ææ¥ã¯èšäº(*1)ã«æžããŠããSlackäžã§botãšããåãããã®ãå®éã«ãã£ãŠã¿ãããšæããŸãããŸãããã®èšäºã«ãbotãåžžé§ãããããã«ã¯PaaSãªã©ã«ãããã€ããå¿
èŠãããããšããæšã®æããã£ãã®ã§ã©ããããèããå¿
èŠããããŸããä»ã¯Node.jsåããããã€ãã§ããPaaSã® now ãšãããµãŒãã¹ã䜿ã£ãŠã¿ãããšèããŠããŸãããããã¯ãŸãå
ã®è©±ã§ãã
ã¢ããªã®æ§æãšä»æ§ãèããã
botãšãããã¹ãããã
ããã§ã¯ãŸãææ¥ïŒ
èšäº(*1): Slackã®Bot(hubot)ãäœã£ãŠã¿ã URL: https://qiita.com/mochidamochiko/items/29c2d77715d8a1ff062a
èšäº(*2): Hubot ã®ã€ã³ã¹ããŒã«ãš Hello World URL: https://qiita.com/suppy193/items/27ffbe932877a1d7e8ee