アーカイブ

Hubot弄ってみる​ 準備編

GitHub Edit Page
この記事は公開から1年以上が経過しています。内容が一部古い箇所があります。

経緯

割と本気で家庭用 Slack Bot を作ってみた - 八発白中

slack で残業申告時間前になったら残業するやつは申告しろって通知する bot 作りたいんだけど、通知されたところで自分たちが申告するのを仕事一旦止めてすぐやれるかという人間性の問題について考えてる。

勉強がてら色々と弄ってみたい。とりあえず環境構築してみる。

Hubot 導入前

そもそも node のバージョンとかが古いんじゃないのかと思って-v してみたら 3.0 くらいのやつだったので、アップデートしたい、というか環境周り色々と整えたいと思ったので自分の中で Hubot 入れる以前の話になった。

nodebrew で Mac の Node.js 環境をスッキリさせた - akiyoko blog

nodebrew 入れた方がよさそう、とのことだったので上記参考に node とか npm とかアンインストールして再度インストールした。

個人的に~/.bash_profileに追加するので躓きかけた。vim で直接入力してやった。

その後、動かすサーバーとテスト環境が欲しかったので Heroku と slack を登録した。特に課金とかしなくていいです。

Hubot 導入

導入に先駆けてとりあえずググってみた。以下のが色々と参考になった。

slack と連携する hubot を 3 分でインストールする(動画付き)

まず Hubot のジェネレーターをインストール

$ npm install -g generator-hubot

そのあと Hubot を動かすためのディレクトリを作成。yamabot というのを作ります。

$ mkdir yamabot
$ cd yamabot
$ yo hubot

そんでこの Hubot を定義するために以下のが尋ねられます

Bot adapter の箇所には slack と入力しましょう。

動作確認としてローカルで動くかどうかを確認。 自分がつけた Bot 名が表示されてたら OK

$ bin/hubot

Heroku にログイン、プロジェクト登録

ここまでの状態で Heroku にアップしてみたいのでまずはログイン。 そのあと Hubot 用のプロジェクトを作ります。 作った後は Git で add、commit、push しちゃいます。

$ heroku login
$ heroku create yamabot
$ git add -A
$ git commit -am "first commit"
$ git push heroku master

Slack API 所得

次に slack に移動して API を取得してきます。

http://my.slack.com/services/new/hubot

Image from Gyazo

名前を入力して決定を押すと API が表示されますのでコピーします。

Image from Gyazo

コピーした API を以下<Your token>に入力して登録します

heroku config:set export HUBOT_SLACK_TOKEN=<Your token>

あと hubot の Heroku に登録した app url を以下で入力、確認して HUBOT_HEROKU_KEEPALIVE_URL に[your bot app url]に入力、登録。

$ heroku apps:info
...
Web URL: https://yamabot.herokuapp.com/
...
$ heroku config:set HUBOT_HEROKU_KEEPALIVE_URL=[your bot app url]

Heroku のダッシュボードに入って登録したプロジェクトの Settings→Domains でも確認できます。

Slack を見る

Image from Gyazo

登録した slack を見ると slack bot 以外にも自分が登録した Hubot が居るかと思われるので ひとまず適当なチャンネルを作って Invite します。

そこで bot 名を入力した後 ping と入力。 直後に bot が PONG と返せたらたぶん設定完了。

Image from Gyazo

自分は色々右往左往しながらやったのでちゃんと設定がキレイにできてるか怪しいのですが bot が登録されて PONG 言ってるしまあ良いか的な感じです。

もちろん、あっさり行く人はそれでいいです。いかなくても大体なんとかなります。

次回の予定

CoffeeScript いじって色々発言させるのとか。一応の最終目標としては定時に何かしらの報告をしてくれるようにしたい。

進捗あったらまた書きます。

アーカイブ記事のため、内容に関する更新依頼は受け付けておりませんが、誤字や脱字などありましたらご連絡ください。

この記事に関する修正依頼
トップへ戻る