LoginSignup
284

More than 5 years have passed since last update.

Slack で Hubot を使えるようにする

Last updated at Posted at 2014-10-25

Slack がコミュニケーションの中心になっていくなかで、Slack からできることを増やそうということで、Hubot(https://hubot.github.com/) を導入してみることにした。

Hubot を動かす環境として、お手軽な Heroku(https://www.heroku.com/) を利用する。

まず、Hubot を導入し、Slack 用の bot を作成する。Hubot の導入には npm(https://www.npmjs.org/) が必要なので、事前にインストールしておく。

$ npm install -g hubot coffee-script generator-hubot

続いて、bot 用のディレクトリを作成し、その中で bot を作成する。

$ mkdir [bot_path_name]
$ cd [bot_path_name]
$ yo hubot
                     _____________________________  
                    /                             \ 
   //\              |      Extracting input for    |
  ////\    _____    |   self-replication process   |
 //////\  /_____\   \                             / 
 ======= |[^_/\_]|   /----------------------------  
  |   | _|___@@__|__                                
  +===+/  ///     \_\                               
   | |_\ /// HUBOT/\\                             
   |___/\//      /  \\                            
         \      /   +---+                            
          \____/    |   |                            
           | //|    +===+                            
            \//      |xx|
? Owner: Your Name <your@mail.address>
? Bot name: hubot
? Description: A simple helpful robot for you
? Bot adapter: slack

  create ...(省略)
                    _____________________________  
 _____              /                             \ 
 \    \             |   Self-replication process   |
 |    |    _____    |          complete...         |
 |__\\|   /_____\   \     Good luck with that.    / 
   |//+  |[^_/\_]|   /----------------------------  
  |   | _|___@@__|__                                
  +===+/  ///     \_\                               
   | |_\ /// HUBOT/\\                             
   |___/\//      /  \\                            
         \      /   +---+                            
          \____/    |   |                            
           | //|    +===+                            
            \//      |xx|     

  hubot-...(省略)

これまでは、hubot --create を使っていたが、非推奨になっており、Yeoman(http://yeoman.io/) を使う方式に変わったようだ。そのため、generator-hubot のインストールが必要となっている。

yo hubot するとウィザードが始まるので、必要な情報を入力していく。入力した情報は、package.json に反映されるので、後から修正することも可能。

Bot adapter として slack を必ず指定すること。後から、個別にインストールする手間が省ける。

ここまでで bot の作成は完了したので、Heroku へデプロイするための準備を始める。まず git リポジトリを作成する。

$ cd [bot_path_name]
$ git init
$ git add .
$ git commit -m "Initial commit"

続けて Heroku 上にアプリケーションを作成する。Heroku の操作のために Heroku Toolbelt(https://toolbelt.heroku.com/) を事前に導入しておくこと。

$ heroku login
Enter your Heroku credentials.
Email: your@mail.address
Password (typing will be hidden): 
Authentication successful.

$ heroku create [your-hubot-app]

Hubot の動作には Redis(http://redis.io/) が必要なので、無料で使えるプランのある Redis To Go という Heroku の Add-on を利用する。有料のものも含めれば、他にも幾つか選択肢がある。

$ heroku addons:create redistogo:nano

ここで、設定に必要な情報を取得するため、Slack の Integration の設定を行う。以下の URL より、Hubot との連携のための設定を追加する。

追加すると Heroku にデプロイする際に必要な Config の情報が表示されているので、こちらを使用する。

HUBOT_SLACK_TOKEN=[your token]

設定は、heroku コマンドで行う

$ heroku config:set HUBOT_SLACK_TOKEN=[your token] 

Hubot を Heroku にデプロイする手順で HEROKU_URL という Config を設定するものがよくあるが、これは hubot-heroku-keepalive(https://github.com/hubot-scripts/hubot-heroku-keepalive) で必要な設定である(hubot-heroku-keepalive は、yo hubot により追加済)。

ところが、こちらも非推奨となっており、現在は HUBOT_HEROKU_KEEPALIVE_URL を使うようになっているので、こちらを設定しておく。

$ heroku config:set HUBOT_HEROKU_KEEPALIVE_URL=[your bot app url]

URL は、以下のコマンドの結果の web_url に書かれているものを指定すればよい。

$ heroku apps:info

ここまでで、Heroku へのデプロイに必要な設定は完了したので、push してデプロイする。

$ git push heroku master

デプロイが終わったら、Slack で bot に ping を打って、動作確認をしよう!

追記

Hubot Integration の内容が変更になったので、これに合わせて書き換えました。

変更点は、必要な環境変数が減ったので、その記述を削除しています。

削除された環境変数

  • HUBOT_SLACK_TEAM
  • HUBOT_SLACK_BOTNAME

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
284