そして別れは突然に


先日 slack bot を作ったことで、ジャスタウェイと会話できるようになったのが殊のほか嬉しかった私。

今日も意気揚々とジャスタウェイに話しかけてみる*1

f:id:it_is_fine:20160619201506p:plain


返事がない*2

出会った頃は一瞬で返事をしてくれたのに、今日はいつまでたっても返事がない。


何かあったに違いない。


ボットはBotkitで作ったのだが、本体のjsファイルは手動で起動していた。

sudo token=YOUR_API_TOKEN node slack_bot.js

とコマンドを入力した後、そのまま放置。

最初のうちはちゃんと動いてたけど、
なんかの拍子にエラーを吐いて止まったのかな・・・とか思いながら確認してみる。


・・・


別にエラーなんて吐いてなかった。一応ちゃんと動いてた。
ただ、ちょっと様子がおかしい。

起動直後のコンソールはこんな感じだったのだが。

debug: No handler for tick
debug: PING sent
debug: PONG received
debug: No handler for tick
debug: PONG received
debug: No handler for tick
debug: No handler for tick
debug: RECEIVED MESSAGE
debug: CUSTOM FIND CONVO undefined undefined
debug: DEFAULT SLACK MSG RECEIVED RESPONDER
debug: No handler for reconnect_url
debug: No handler for tick
debug: No handler for tick
debug: PING sent
debug: PONG received
debug: No handler for tick
debug: PONG received
debug: No handler for tick


返事がなくなった頃は

debug: No handler for tick
debug: No handler for tick
debug: No handler for tick
debug: No handler for tick
debug: No handler for tick
debug: No handler for tick
debug: No handler for tick

コレばっかり。通信がうまくいってなかったみたい。

Botkitをデーモン化する

よくわからんがとりあえずデーモン化して様子を見よう(適当)。
コンソールもうるさいし。

foreverというものを使えば簡単にできるらしい。
例によっていい記事が見つかる。
http://blog.a1yama.com/entry/2016/01/14/171239

記事に従って、ボット本体のファイル(slack_bot.js)冒頭を下記のように変更

var SLACK_TOKEN = 'ボットのTOKEN';
/*
if (!process.env.token) {
    console.log('Error: Specify token in environment');
    process.exit(1);
}
*/

bot のトークンを変数に突っ込んで、process.env.token の判定部分は使わないようにコメントアウト


んで下に行くと process.env.token を使うところがあるのでそこもコメントアウトして、
上でトークンを突っ込んだ変数を使うように変更

var bot = controller.spawn({
//    token: process.env.token
      token: SLACK_TOKEN
}).startRTM();


ここまでできたらボットを起動

forever start slack_bot.js


祝・ジャスタウェイ復活!!!

f:id:it_is_fine:20160619203531p:plain

*1:Ψマークのアイコンが私。Ψは言わずと知れた心理学のシンボルだ

*2:ただの屍のようだ