HUBOTでSlackと連携する。(1回目)

  • 9
    Like
  • 0
    Comment
More than 1 year has passed since last update.

現在の環境

  • Mac OS X El Capitan (10.11.5)
  • Node.js v0.12.2

HUBOTを動かす環境の準備

  1. Node.jsのinstall

    $ nodebrew install v4.4.5
    $ nodebrew list
    v0.12.2
    v4.4.5
    
    current: v0.12.2
    $ nodebrew use v4.4.5
    use v4.4.5
    $ node -v
    v4.4.5
    
  2. hubotのinstall

    • hubotとslackとの連携に必要なものを入れる。
    $ npm install -g hubot hubot-slack yo generator-hubot coffee-script
    
  3. BOTの作成

    • BOT名のディレクトリを作成して移動する。
    $ mkdir norabot
    $ cd norabot
    
  4. yeomanのジェネレーターでhubotを作成する

    • yo hubotでひな形を作成する。 Ownerとか聞かれるので適当に入力
    • Bot adapterはSlackと繋ぐので、slackを入力
    $ yo hubot
                         _____________________________
                        /                             \
       //\              |      Extracting input for    |
      ////\    _____    |   self-replication process   |
     //////\  /_____\   \                             /
     ======= |[^_/\_]|   /----------------------------
      |   | _|___@@__|__
      +===+/  ///     \_\
       | |_\ /// HUBOT/\\
       |___/\//      /  \\
             \      /   +---+
              \____/    |   |
               | //|    +===+
                \//      |xx|
    
    ? Owner kijitora
    ? Bot name nekobot
    ? Description A simple helpful robot for your Company
    ? Bot adapter slack
       create bin/hubot
       create bin/hubot.cmd
       create Procfile
       create README.md
       create external-scripts.json
       create hubot-scripts.json
    identical .gitignore
       create package.json
       create scripts/example.coffee
    identical .editorconfig
                         _____________________________
     _____              /                             \
     \    \             |   Self-replication process   |
     |    |    _____    |          complete...         |
     |__\\|   /_____\   \     Good luck with that.    /
       |//+  |[^_/\_]|   /----------------------------
      |   | _|___@@__|__
      +===+/  ///     \_\
       | |_\ /// HUBOT/\\
       |___/\//      /  \\
             \      /   +---+
              \____/    |   |
               | //|    +===+
                \//      |xx|
    
    
  5. Botの起動

    $ bin/hubot
    [Wed Jun 29 2016 16:21:53 GMT+0900 (JST)] ERROR Error: listen EADDRINUSE
      at exports._errnoException (util.js:746:11)
      at Server._listen2 (net.js:1146:14)
      at listen (net.js:1172:10)
      at net.js:1270:9
      at dns.js:85:18
      at process._tickCallback (node.js:355:11)
    
    nekobot> [Wed Jun 29 2016 16:21:53 GMT+0900 (JST)] WARNING Loading scripts from hubot-scripts.json is deprecated and will be removed in 3.0 (https://github.com/github/hubot-scripts/issues/1113) in favor of packages for each script.
    
    Your hubot-scripts.json is empty, so you just need to remove it.
    [Wed Jun 29 2016 16:21:53 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)`
    [Wed Jun 29 2016 16:21:54 GMT+0900 (JST)] INFO hubot-redis-brain: Using default redis on localhost:6379
    
    • なんかエラーが出ちゃったけど取り合えずおいといて、話しかけてみる
    nekobot> nekobot PING
    nekobot> PONG
    
    • ちゃんと動いてる見たい
  6. エラーを解消してみる

    • エラーを見るとhubot-scripts.jsonは必要ないみたいなので、remove
    $ rm -rf hubot-scripts.json
    
    • 今回はherokuにのせないため、デフォルトで入っているheroku関連を削除
    $ vim external-scripts.json
    [
      "hubot-diagnostics",
      "hubot-help",
      "hubot-heroku-keepalive",
      "hubot-google-images",
      "hubot-google-translate",
      "hubot-pugme",
      "hubot-maps",
      "hubot-redis-brain",
      "hubot-rules",
      "hubot-shipit"
    ]
    

    となっているので"hubot-heroku-keepalive",を行ごと削除

  • ERROR Error: listen EADDRINUSE については裏で他のHUBOTを実行していたため同じポートが使われていた。。。とりあえず裏のHUBOTを止めて再度起動

    $ bin/hubot
    nekobot> [Wed Jun 29 2016 16:35:07 GMT+0900 (JST)] INFO hubot-redis-brain: Using default redis on localhost:6379
    nekobot>
    
    
    • 今度はエラーもでず起動
    • ちょっと長くなってしまったので、slackと実際につなぐところは次回に。。。

参考にさせていただいたサイト

HubotでSlackのボットを作成する