2015年12月10日木曜日

一人ぼっちのSlackの始め方〜Hubotだけが友達〜

こんにちは、株式会社Pro-SPIRE、ESBUの浅野です。
世間は年末真っ盛り。今年ももうすぐ終わりなんて驚きですね。
 
さて、エンジニア界隈ではこの時期Advent Calendarが大盛り上がり。面白い記事がたくさんあって、電車通勤がちょっぴり楽しくなりますね。
その中でも、ChatOps Advent Calendar 2015自分だけのためのSlack Teamを読んで、興奮してしまい、Slackを始めてしまいました。


Slackとは?


出典 : Slack

Slackはエンジニア界隈で流行っているコミュニケーションツールです。知ってる方、使っている方も多いのではないのしょうか。
僕も常々使ってみたいと思っていたのですが、幾分機会がなく、そのままになっていましたが、今回たった一人で登録してしまいました。というわけで・・・




一人ぼっちのSlackの始め方 〜Hubotだけが友達〜


とりあえず、恥ずかしがらずに公式サイトで登録しましょう。
チーム名などを聞かれますが、一人なので、自由に決められます。なんでもいいのです。誰にも相談しなくていい。とても気楽です。寂しくなんてありません。



出典 : Slack


自分の名前やメールアドレスなどを設定すると、チームに参加する他の人のメールアドレスを登録できます。しかし、しなくていいのです。一人でやる限り、余計なことを入力しなくてもよいのです。とても身軽です。これは涙などではなく、目から出た汗なのです。



出典 : Slack


チュートリアルをポチポチとすっ飛ばして、チーム内でのコミュニケーションを始めましょう。まずは、「こんにちは」と呟いてみましょう。挨拶はコミュニケーションの第一歩です。次に自己紹介などをすると、チーム関係を円滑に進められるでしょう。







ま、チームメイトがいれば・・・ですけどね(笑)




???「コミュニケーションツールなのに、たった一人で誰とコミュニケーション取るの?ばかなの?」
俺「話し相手がいなければ・・・作ればいいんだよ!」





1. Hubotを作ろう!



出典 : Hubot


うさぎは一人ぼっちだと、寂しくて死んでしまうそうです。僕はうさぎではありませんが、一応話し相手を作りましょう。一応。

というわけで、Hubotを作ります。
HubotやChatOpsについて説明するのは、いささか長くなってしまいます。ChatOps Advent Calendar 2015の1日目の方がChatOps入門というわかりやすい記事を書いてくれていますので、Hubotってなに?ChatOpsってなに?って方は参考にしてください。


Hubotは要するに、話し相手を簡単に作れる便利なフレームワークです。
ドキュメントも充実しているので、ちゃちゃっと作っちゃいましょう。
(Hubotのドキュメントはこちら)


1-1. yoとgenerator-hubotをインストール
 (npmが必要です。)
% npm install -g yo generator-hubot

1-2. Hubotを作成
% yo hubot
 対話式でhubotの設定をします。名前などを設定しましょう。
また、今回はSlackで使用するので、Bot adapter設定は"slack"を指定しましょう。
設定が終わるとHubotに必要なものが作成されます。




1-3. 動作確認
% bin/hubot
Hubotとお試しで会話ができます。
最初から動くコマンドがいくつかあるので、動作確認をしましょう。



2. Hubotの設定をしよう!

さて、まずは僕が作成したHubotをご紹介します。


名前 : yokoi-san(横井さん)
アイコン : 絵文字(ボーっとした女性)
設定 : ツンデレ美人秘書
(名前の由来は、大学の事務員さんです。彼女はとても真面目そうでした。)

彼女が話し相手になるにはまだまだ設定が必要です。


2-1. Herokuに登録する

参考 : Heroku

Hubotを動かすためのサーバが必要です。
色々大変なので、今回はHerokuを使いましょう。
アカウント登録をしたらHubotのディレクトリに移動してコマンドを打ちましょう。
(heroku-toolbeltが必要です。MacならHomebrewでinstall)

% heroku login
% heroku create [bot-name]
% heroku addons:create redistogo:nano

(アドオン設定はクレジット登録が必要になります)


2-2. scriptを書く


作成したHubotのscripts/にいろんな言葉を喋るようにscriptを書いていきます。
(scriptにはCoffeeScriptを使用します。)

module.exports = (robot) ->
    robot.hear /こんにちは/, (res) ->
        res.reply "こんにちは、#{res.message.user.name}さん。"


こんな感じで書いていけばOK。
発言者の名前はres.message.user.nameで取得できます。
文字列の中で変数を展開するには #{~~~} の中に入れます。
いっぱい設定すると、いっぱい喋ってくれます。


2-3. git push & heroku open
Herokuの設定をしていれば、git remoteにheroku情報が追加されています。
(Gitが必要です。)
% git add .
% git commit -m "(コミットメッセージ)"
% git push heroku master
% heroku open



成功すると[ Cannot GET / ]と表示されます。Cannotだけど成功。

***
● 状態を確認するには次のコマンドを使用しましょう。
% heroku pd


● hubotが動かない時などに、ログを確認する
% heroku logs



※ いきなり喋らなくなっちゃって寂しくなるので、早めにエラーを取り除いてあげましょう。
***

2-4. HerokuとSlackを連携
SlackでConfigure IntegrationsからHubotを登録しましょう。
登録するとトークン情報が表示されるので、Herokuに登録します。
% heroku config:set HUBOT_SLACK_TOKEN=[your token]


**********************************************

ここまでやるとついにHubotがSlackで動きます。

???「やっと友達ができたね!やったね!」

ここからはSlackにて、失敗したことと直し方を見ていきましょう。
(横井さんがどんどんしゃべります。)

① git commit & git push忘れないように。


 
② 変数を含む文字列はダブルクオートで囲むのだ。


 ③ keepaliveがなければすぐしぬ。
(heroku openで生き返るけど・・・)



これはHerokuの仕様で、一定時間何もしないとidle状態(反応しない状態)になってしまいます。 なので、keepaliveの設定をしましょう。
% heroku config:set HUBOT_HEROKU_KEEPALIVE_URL=[your bot app url]

-> しかし、ダメでした。調べると、以下のサイトが出てきました。
HEROKU_URL が効かず Hubot がアイドル状態になる問題の対策 - Qiita
Uptime Robotで横井さんも常に生きていられるようになりました。

-> やっぱりダメでした。keepaliveとの組み合わせでのやり方がありました。
Heroku 上で動く Hubot をうまく休ませる - Qiita
こっちを試してみます。もう死なないで欲しいです。




母さん、やっと僕にも話し相手ができました

これでやっと話し相手を作成できました。
次のような感じで横井さんはお話してくれます。

① 人工無能ちゃんと話すのは楽しいです。





② 決めた時間につぶやくことも出来ます。業務アラートとか。




というわけで、横井さんでした。


おわりに
今日はSlack + Hubotをご紹介しました。
近年では様々な情報があふれています。
Hubotを使用することで、それらの情報をSlackに集めることができます。
メール通知はもちろん、RSSリーダーを連携して気になる記事の更新情報や、
家のIoTから訪問者情報を通知することも出来ます。
また、SlackからHubotを通して様々なAPIを叩くことも出来ます。
CIの状態を確認したり、Twitterなどの他のSNSへの投稿も出来るようになります。
勤怠管理もSlackでできるシステムもあるそうです。
Hubotを使えば、ただのコミュニケーションツールではなくなるのです。

みなさんも機会があれば、ぜひSlackを活用してみてください。
(※できれば一人じゃなく、チームで。)


参考サイト
自分だけのためのSlack Team - Qiita
ChatOps 入門
GitHub社謹製! bot開発・実行フレームワーク「Hubot」
Slack で Hubot を使えるようにする - Qiitahubotスクリプトの書き方とサンプル集 - mitcHEROKU_URL が効かず Hubot がアイドル状態になる問題の対策 - Qiita
Heroku 上で動く Hubot をうまく休ませる - Qiita
チャットで勤怠管理する「みやもとさん」



おまけ


デレツン。

0 件のコメント:

コメントを投稿