Skip to content

Instantly share code, notes, and snippets.

@ginpei
Created February 12, 2016 06:36
Show Gist options
  • Select an option

  • Save ginpei/09db9cce603f028f49ec to your computer and use it in GitHub Desktop.

Select an option

Save ginpei/09db9cce603f028f49ec to your computer and use it in GitHub Desktop.

SlackにHubotを入れてみた

Hubot

インストール

NPMで用意されてる。

yogenerator-hubot はローカルにインストールしたけど、公式ドキュメントだとグローバルになってる。好みで。

$ mkdir mybot
$ cd mybot
$ echo "{}" > package.json
$ npm install -S yo generator-hubot
$ yo hubot

色々聞かれるのでぽんぽん入力。

"adaptor" のとこだけ確実に slack と入力する事。

終わったらいったんGitに追加しておこうか。

$ git init
$ git add .
$ git commit -m init

試しに動かす

このままだと独り言をつぶやく以外にできないので、まず動かす前にスクリプトを追加してみよう。

scripts/example.coffee の(冒頭以外の)コメントを解除する。

で、エミュレーター?を起動する。

$ bin/hubot
mybot> [Thu Feb 11 2016 22:08:59 GMT-0800 (PST)] ERROR hubot-heroku-alive included, but missing HUBOT_HEROKU_KEEPALIVE_URL. `heroku config:set HUBOT_HEROKU_KEEPALIVE_URL=$(heroku apps:info -s  | grep web-url | cut -d= -f2)`
[Thu Feb 11 2016 22:08:59 GMT-0800 (PST)] INFO hubot-redis-brain: Using default redis on localhost:6379

なんかエラー出てるけどとりあえず気にしない。

試しに badger と入力してみると。

mybot> badger
mybot> Badgers? BADGERS? WE DON'T NEED NO STINKIN BADGERS

何か反応してくれる。

GitHub

適当なスクリプトを追加するなりさっきの example.coffee を有効化するなりして、GitHubに適当なリポジトリーを作って全部置いておく。

共同開発

二人目以降はGitHubから git clone してきて npm i でセットアップ。

Slackの準備

SlackのApp DirectoryでHubotのページへ。

自分のチームの "Configure" から "Add Configure" から追加する。

API Tokenを後で使う。

Heroku

アプリの作成

Create new appから新しくひとつ作る。

環境変数の用意

作ったらSettings→Config Variablesへ。"Reveal Config Vars" ボタンを押して編集モードへ。

  • HUBOT_SLACK_TOKEN … API Tokenを設定。SlackのTeam Settingsとかのページを開いて左メニューの "Configure Apps" から探す。
  • HUBOT_HEROKU_KEEPALIVE_URL … HerokuアプリのURLを設定。Heroku右上メニューの "Open app"から。

GitHubと連携、デプロイ

DeployでDeployment methodとしてGitHubを選択。さっき作ったリポジトリ-と接続する。

一番下のManual deployからデプロイすると起動する。

自動デプロイを設定しておくと楽。確認はActivityから。

再びSlack

チャンネルに参加させる。

動かねえお (´^ω^`;)

ぼっとたん寝てるお……。

チャンネルには参加させたけど話しかけても反応ないお……。

というか寝てるお……。Zzz

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment