Slackを私用で使い始めました
- Slackが何かについては検索してください。まあいわゆるチャットツールです。
- 前職で初めて使ったSlackが幸運にも転職先で使われ始めたので、せっかくだからもっと使い込んでみようと思った
- だが不幸にも会社の人間にSlackの強力さがいまいち伝わていない模様
- Slackの魅力はなんといってもWebサービスとの連携
- ここでslackの良さを証拠を持ってして説明できれば会社に定着してくれるはず!
↑建前
↓本音
- Chatops的に「人語で命令できる奴隷を常備しておきたい」。
- プログラミングは嫌いじゃないが、何か単調な指示をするときくらいは日本語か英語でやらせてくれ
目的と前提
-
自分で契約しているVPSでhubotを走らせ、slack連携によってアクセスさせてみよう。そして常時起動を目指そう。
-
前提として、 何かしらのVPSを契約していること。
- Herokuにデプロイもやったんだけどアイドル時間が長いとhubotが永眠して使い物にならん
- 常駐させたいんですよ俺は
- そういうしがらみのない、自分で色々できるVPSにしよっと…
導入
まずConoha(VPS)にhubotを導入
# yum -y update
# yum -y upgrade
# yum -y install git nodejs redis // gitはなんとなく
# npm i -g hubot coffee-script yo generator-hubot // installってiだけでいいんだね!!
# mkdir -p conohaBot
# cd conohaBot
# yo hubot
なんかいろいろ聞かれますが、"adapterどうする?"ってところだけ"slack"と答えて、ほかはなんか適当にやりました。自分の名前とbotの名前をどうするか、くらいしか聞かれなかった気がします。
hubotの動作確認
hubotのディレクトリ(上記でいうところのconohaBot)にscriptsってディレクトリがあります。その中にexample.coffeeがあるので
# cp example.coffee test.coffee // バックアップを作るクセをつけよう
# vi test.coffee
でtest.coffeeを編集。
なんかコメントアウトめったくそされてて切なくなったのでbadgerのくだりの2行だけコメントアウト。
# bin/hubot
で走らせたあと'Badger'って撃ったら「くっさいアナグマは要らんのやで」って言われました(サンプルプログラムが動いている証拠)
hubotを動作させる目的は達成。
Ctrl+Cなりで抜けだして死んでいただきましょう
slackに召喚する
slackのIntegrationのページ(https://自分のslackのドメイン/services/new)からhubotを選んでなんか適当に名前作っておく。
作成が終わるとAPIトークンが表示される (下記みたいな形式)ので、それをコピーしておく
HUBOT_SLACK_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
コピーしたら先ほどのbin/hubotをvimなりnanoで編集して貼り付け。
// bin/hubotファイル内
export HUBOT_SLACK_TOKEN=xxxxxxxxxxxxxxx // これはどこでもいいけど必須
exec node_modules/.bin/hubot --adapter slack --name "(botのなまえ)" "$@" // 末尾にあったやつをこれに書き換え
# bin/hubot
で起動すると君のslackの適当なchに出現するはず!
永遠にこきつかう
常駐させます。なおかつホットデプロイ(scriptを変更・保存した瞬間にその内容が適用される)させましょう。
# mv bin/hubot bin/hubot.sh //書き換えなきゃいけない理由はよくわからん。あとで調べる
# npm i -g pm2
# pm2 start bin/hubot.sh --watch
監視状態で始まるので、先ほどのtest.scriptの内容を何か適当に変えてみましょう。
robot.hear /さくらたん/i, (res) ->
res.send "ほえええええええ"
slackに「さくらたん」と発言してbotがほえええええええって発言したら成功です。
ここからどうする
あんまり考えてないけどredisがあるからいろいろ格納できるし、cronJobでコミケの締め切りの通知とかできるよね