内容
ちょっと自分用のSLACKにbotを導入してみました。
以前、hubotを昔入れたことがあったんですが、今の会社がlitaだったのでlitaを入れてみました。
rubyですし。
litaをおいておくところはherokuなのでheroku toolbelt、rubyとかgitはインストール済前提の記事です。
バージョン
ruby: 2.3.1
heroku:
heroku-toolbelt/3.43.12 (x86_64-darwin15) ruby/2.3.1,
heroku-cli/5.5.1-cf2de15 (darwin-amd64) go1.7.3
導入
ローカルの準備
# lita gemをインストール
$ gem install lita
# lita コマンドで初期コマンド
$ lita new <app name>
# できたディレクトリに移動
$ cd <app name>
# litaさんのGemfileのインストール
$ bundle install
# litaさんが動くか確認
$ lita start
Type "exit" or "quit" to end the session.
Lita > lita info
Lita 4.7.1 - https://www.lita.io/
Redis 3.2.0 - Memory used: 1.11M
Lita > lita help
Lita: help - Lists help information for terms and command the robot will respond to.
Lita: help COMMAND - Lists help information for terms or commands that begin with COMMAND.
Lita: info - Replies with the current version of Lita.
Lita: users find SEARCH_TERM - Find a Lita user by ID, name, or mention name.
Lita > exit
Gemfileに lita-slack を追加
Gemfile
gem 'lita-slack'
またターミナルで
# 追加したgemのインストール
$ bundle install
slack側の設定
導入するslackにlitaのインテグレーションを追加
- https://.slack.com/services/lita/new にアクセス。
- lita integration を追加
- 次のページでslack apiキーが表示される(herokuの環境変数にセットする)
heroku側の設定
heroku にログインして、環境の作成、
# ログイン
$ heroku login
# heroku環境の作成
$ heroku apps:create
Creating ot... done
https://.herokuapp.com/ | https://git.heroku.com/.git
# herokuのredisを追加
$ heroku addons:add redistogo --app annp-bot
Creating redistogo on ⬢ ... free
Created redistogo-octagonal-53314 as REDISTOGO_URL
Use heroku addons:docs redistogo to view documentation
# slack apiキーを設定
$ heroku config:set SLACK_API_KEY=""
Setting SLACK_API_KEY and restarting ⬢ ... done, v6
SLACK_API_KEY:
$ heroku config # で確認できる
=== annp-bot Config Vars
LANG: en_US.UTF-8
RACK_ENV: production
REDISTOGO_URL: redis://redistogo:0a0a0a0a0a0a0a0a0a0a@crestfish.redistogo.com:10268/
SLACK_API_KEY: xoxoxoxoxoxoxoxoxoxoxoxoxoxoxo
# herokuにデプロイ
# herokuのgit設定を追加
$ git remote add heroku https://git.heroku.com/.git
# herokuにpush
$ git push heroku master
実際に動いているか確認
なんか大丈夫そう
litaさんにコマンドを教える
こちらの記事を見ながら作成しました => http://knowledge.sakura.ad.jp/knowledge/5228/
個人的に route で指定した正規表現がハマリポイントでした。
あと、lita-slack gemをいれるとローカルで確認するのに、Gemfileなどlita-slack関連をコメントアウトするのと
lita_config.rbのconfig.robot.adapter = :slackをconfig.robot.adapter = :shellにし直さないと確認できなかったりしてどうにかならないかなーっておもった(たぶんあるんだろうと思う。)
litaはrubyな分hubotよりめっちゃ簡単にかけてよかった。