そもそもSlack Commandってなんだ
/
から始まるアレ
/remind me コンビニに寄る in 3 hours
上のはリマインダー よく使う
つくるもの
今回はこんな便利な機能であるスラッシュコマンドをbotkit自作しようと言う話
面倒なので /hello
って打ったらこんにちは!
って返すbotを作る
用意するもの
- botのAPIキー
- xoxb-から始まるやつ これがないと始まらない
- HTTPサーバー
- Slack CommandはHTTPサーバー経由が必須とのこと
- 他Slackチームでも使ってもらうならhttps必須になるっぽい
- botkitが動かせる環境
Slack側の設定
まずhttps://my.slack.com/services/new/botにアクセスしてSlack Commandを作成する
- コマンド:任意 今回は
/hello
- URL :
http://HOST_NAME/slack/receive
httpsである必要はない - Autocomplete help textを設定しておくと吉
インストール
mkdir slack-hello cd slack-hello npm init npm install -S botkit
適当に bot.jsでも作って以下
var Botkit = require('botkit'); if (!process.env.token) { console.log('Error: Required Token'); process.exit(1); } var controller = Botkit.slackbot({ debug: false }); var bot = controller.spawn({ token: process.env.token }).startRTM(); // Webサーバー(express)起動 controller.setupWebserver(process.env.port, function(err, webserver) { controller.createWebhookEndpoints(controller.webserver); }); controller.on('slash_command', function(bot, message) { if ('/hello' === message.command) { bot.replyPublic(message, 'Hello!'); } });
起動
token=**** port=3000 node bot.js
これで挨拶を返してくれるはずである
蛇足
返信の方法は2種類ある
だれにでも見られるreplyPublic
bot.replyPublic(message, 'Hello!');
コマンドを実行した人にしか見れないreplyPrivate
bot.replyPrivate(message, 'Hello!');