世間は年末真っ盛り。今年ももうすぐ終わりなんて驚きですね。
さて、エンジニア界隈ではこの時期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 がアイドル状態になる問題の対策 - Qiit
-> やっぱりダメでした。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 件のコメント:
コメントを投稿