Rubotyをローカルで動かしてSlackに登場させる時のメモ

More than 1 year has passed since last update.

herokuにデプロイせず、ちょっとだけ動かして試したいことがあって、
ローカルで動かしてSlackにログインさせてみました。

rubotyコマンドのインストールとbotの作成

やること

  1. gem install でrubotyコマンドをインストール
  2. ruboty --generate で新しいbotを作成
$gem install ruboty
Fetching: dotenv-2.1.0.gem (100%)
Successfully installed dotenv-2.1.0
Fetching: mem-0.1.5.gem (100%)
Successfully installed mem-0.1.5
Fetching: ruboty-1.2.2.gem (100%)
Successfully installed ruboty-1.2.2
Parsing documentation for dotenv-2.1.0
Installing ri documentation for dotenv-2.1.0
Parsing documentation for mem-0.1.5
Installing ri documentation for mem-0.1.5
Parsing documentation for ruboty-1.2.2
Installing ri documentation for ruboty-1.2.2
Done installing documentation for dotenv, mem, ruboty after 0 seconds
3 gems installed

$ruboty --help
usage: /usr/local/bin/ruboty [options]
    --dotenv        Load .env before running.
    -g, --generate  Generate a new chatterbot with ./ruboty/ directory if specified.
    -h, --help      Display this help message.
    -l, --load      Load a ruby file before running.
$ruboty --generate
$tree
.
└── ruboty
    └── Gemfile

1 directory, 1 file

Gem等の準備

やること

  1. bundlerをglobalにインストール
  2. ruboty-slack pluginをGemfileに記述
  3. bundle install
# とりあえずbundlerをインストール
$gem install bundler
Successfully installed bundler-1.11.2
Parsing documentation for bundler-1.11.2
Done installing documentation for bundler after 2 seconds
1 gem installed

$cd /path/to/ruboty
$cat Gemfile
source "https://rubygems.org"

gem "ruboty"

# Gemfileにruboty-slack pluginを追加
$echo 'gem "ruboty-slack"' >> Gemfile
$cat Gemfile
source "https://rubygems.org"

gem "ruboty"
gem "ruboty-slack"

$bundle install
Don't run Bundler as root. Bundler can ask for sudo if it is needed, and installing your
bundle as root will break this application for all non-root users on this machine.
Fetching gem metadata from https://rubygems.org/...........
Fetching version metadata from https://rubygems.org/..
Resolving dependencies...
Using i18n 0.7.0
Using json 1.8.3
Installing minitest 5.8.4
Using thread_safe 0.3.5
Using bundler 1.11.2
Using dotenv 2.1.0
Using mem 0.1.5
Using slop 4.2.1
Using tzinfo 1.2.2
Using activesupport 4.2.5.1
Using ruboty 1.2.2
Installing xrc 0.1.8
Installing ruboty-slack 0.1.12
Bundle complete! 2 Gemfile dependencies, 13 gems now installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.

Slackの認証周りの準備

rubotyはXMPP gatewayを利用してログインするのでその辺の設定が必要です。

やること

  1. https://hoge.slack.com/admin/settings#gatewaysEnable XMPP gateway (SSL only) をチェック
  2. https://hoge.slack.com/account/gateways でUserとPassを取得
  3. .envファイルに色々記述

$touch .env
$vi .env
# 内容は適当です。
$cat .env
SLACK_PASSWORD={Pass}
SLACK_ROOM=general
SLACK_TEAM=hoge
SLACK_USERNAME=ray

起動

あとは起動をコマンドを実行するだけです。
起動してpingでも打ってみましょう。

# --dotenvオプションを付けてあげれば.envファイルに書いた環境変数を読んでくれます。
$bundle exec ruboty --dotenv
# ここで固まりますが、起動してるのでSlackで話しかけてみれば返ってくると思います。

スクリーンショット 2016-02-27 15.07.50.png

rubotyをローカルで動かした時のメモでした。

参考