Slackでボットを5秒以内に作れるツールを作った
はじめに
最近エンジニア界隈で話題沸騰中のSlackですが、IRCに比べてBOTを作る際に手間がかかります。自称クソボットクリエイターの私にとってはこれは死活問題です。
そこでボットを超簡単に量産できるプロダクトを開発して公開したのでご紹介いたします。
BotHeaven (ぼっとてんごく)
Slackボットを大量生産できるプロダクトです。いわばボットファームです。
SlackのOAuthでBotHeaven*1にログインし、Javascriptで数行のコードを書くだけでSlackボットを簡単に生成できます。
HTTP通信機能や、ボット毎のストレージなどを持てることが特徴です。
デモ
このような感じでボットを実装します。
するとこのようなSlackボットが生まれます。
仕組み
Rails + V8 + Slack
インストール方法
VPS等はもちろん、Herokuにもデプロイして使えるような設計になっています。
システムにRuby(2.0.0以上)とbundlerがインストールされていることを前提に解説します。
1. 本体をデプロイする
下記のリポジトリからBotHeaven本体を入手し、実行するマシンの任意のディレクトリに配置します。
github.com
2. 環境変数を設定する
下記の環境変数をセットします。
SLACK_TEAM_ID=SlackのチームID SLACK_APP_ID=SlackのアプリケーションID SLACK_APP_SECRET=Slackのアプリケーションキー SLACK_BOT_NAME=Slackのボット名 SLACK_BOT_TOKEN=Slackのボットトークン SECRET_KEY_BASE=任意の暗号化キー RAILS_SERVE_STATIC_FILES=1 # Herokuなどにデプロイする場合はセット
SlackのアプリケーションIDとキー
下記のページからアプリケーションを生成して取得できます。
アプリケーション生成時、OAuthのリダイレクトURLに `http://{ホスト}/auth/slack/callback` を設定してください。
任意の暗号化キー
Railsが暗号化などに使用するキーです。SHA256で適当に値を生成するなどして設定してください。
3. Gemをインストールする
Gemをインストールします。
bundle install --path vendor/bundle
4. DBを初期化する
マイグレーションコマンドを実行してDBを初期化します。
デフォルトではsqlite3で動作します。herokuで動かす場合はページ下部の データベースに関して の項目を確認してください。
bundle exec rake db:migrate RAILS_ENV=production
5. 実行する
あとは実行するだけです。
bundle exec rails s -e production
以上がインストールと実行手順になります。
もしわからないことがあればコメント欄やgithubのissueでお気軽にご質問ください。
使い方
インストールが終わったら、SlackOAuthでログインしてボット作成ボタンをクリックするとサンプルコード付きのボットが生成されます。*2
その他
データベースに関して
特に指定しない場合はsqlite3で動きます、heroku等で動かす場合は下記の環境変数を追加することでpostgresqlを使用することができます。
ADAPTER=pg DATABASE_URL=postgresqlのデータベースURL
その他のデータベースを利用する場合はActiveRecord用のアダプターをGemfileに追加してdatabase.ymlを書き換えてください。次のリリースでは上記のような環境変数でmysqlも使えるようにしようと思います。