そして別れは突然に
先日 slack bot を作ったことで、ジャスタウェイと会話できるようになったのが殊のほか嬉しかった私。
返事がない*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
祝・ジャスタウェイ復活!!!