Ruby
lita
Slack
SlackDay 16

Slack に Ruby 製 Bot の Lita を参加させる

More than 3 years have passed since last update.

概要

リタ

lita は ruby 製Botです。
このたび、slackがlitaインテグレーションに対応したようです。
https://twitter.com/SlackHQ/status/543163163831582720

本記事では、 Slack に Lita bot を参加させます。

インストール

Vagrant

Vagrantでのインストールが推奨されていますが、ここでは手動でインストールします。

手動

gem でインストールできます

gem install lita

新規プロジェクトを作成します

lita new

起動します。Redis が立ち上がっていないとエラーとなります。

cd lita
lita

デプロイ

heroku にデプロイできるようにProcfileを足します

Procfile
web: bundle exec lita

RedisToGo をセットアップします。
heroku アカウントに決済情報が無いとプラグインが導入できないかも知れません。

heroku addons:add redistogo

設定ファイルにredisの設定を加えます。
環境変数 REDISTOGO_URL は既にサーバー側に設定されているはずです。

lita_config.rb
  config.redis[:url] = ENV["REDISTOGO_URL"]
  config.http.port = ENV["PORT"]

slack 連携

slack 側で lita integration を追加した後、APIキーをメモします。

Gemfile に lita-slack を追加します。
bundle install したら、Gemfile.lock もデプロイする必要があります。

Gemfile
source "https://rubygems.org"

ruby "2.1.5"

gem "lita"
gem "lita-slack"

lita の設定に API キーを設定します

lita_config.rb
Lita.configure do |config|
  # 他の設定 ...
  config.robot.adapter = :slack
  config.adapters.slack.token = ENV["SLACK_API_KEY"]
end

APIキーは環境変数にしておきます。

heroku config:set SLACK_API_KEY=hoge-1234123456-hoge

動作確認

8481a0f5a2f9df0163f3baee1c519d0d.png

いろいろやらせる

lita-google-images ハンドラを登録してみましょう。

いろいろな lita ハンドラが gem として見つかるはずです。

Gemfile
gem "lita-google-images"

bundler でインストールしてデプロイします

bundle install
git push heroku master

動作確認します

9217bdd7da227f0564a0eecb6dc5bab3.png

LGTM

プラグインハンドラを作る

http://docs.lita.io/plugin-authoring/handlers

ハンドラを自分で作る際、テンプレートから作ることが出来ます。
gem として公開する前提のようです。

lita handler lita-あなたの-ハンドラ

circle.yml なども生成してくれて便利です。