「エンジニア彼氏に愛想を尽かされた普通のOLでもSlackbotが作れた話 - くまのからあげ」のページを読んで、HubotではなくBotkitでボットを作ってみようと思いました。「Slackの新しいフレームワークBotkitを試してみる - Qiita」のページを読むと、まずGitHubからcloneしろ、とあります。しかし、そもそもGitを導入していません←導入しろ。
# yum update # yum install git # su - stic $ git clone git@github.com:howdyai/botkit.git
ところが最後のコマンドを実行したら、
Initialized empty Git repository in /home/stic/botkit/.git/ Permission denied (publickey). fatal: The remote end hung up unexpectedly
と言われてしまいました。グーグル先生に聞いたら、「自分でcommitしたファイルをローカルリポジトリにcloneできないので対処した」的な話ばかりでNG。結論→以下のコマンドに変えたら、OKでした。
$ git clone git://github.com/howdyai/botkit.git
続いて、Slackにボットユーザーを追加します……って、そんなチーム持っていません←作れ。とゆーわけで、全然セッションに参加できていない(すみませんスミマセン)TRPGのサークル用チームを作成しました。
https://my.slack.com/services/new/bot
上のURLにアクセスしてボットユーザーを作成して、API Tokenをコピーしておきます。
$ cd botkit $ token=[コピーしておいたAPI Token] node slack_bot.js
ところがところが最後のコマンドを実行したら、
module.js:472 throw err; ^
と言われてしまいました。またしてもグーグル先生に泣きついて、以下のページを参考に足りないモジュールを導入します。
【Node.js】足りないモジュールをたったの一行でインストールするコマンド - Qiita
導入するには権限が必要なので、rootに戻って、
$ exit # npm install -g npm-install-missing
スクリプトを実行したいユーザーに戻って、
# su - stic $ npm-install-missing
足りないモジュールの導入が終わったら、もう一度……
$ token=[コピーしておいたAPI Token] node slack_bot.js
ところがところがところが(あなかま)、同じエラーが出てしまいます。
module.js:472 throw err; ^
以下のコマンドをを実行すると、
$ npm-install-missing Package Current Wanted Latest Location clone 2.0.0 2.0.0 2.1.0 botkit jscs 2.11.0 2.11.0 3.0.7 botkit mocha 2.5.3 2.5.3 3.2.0 botkit should 8.4.0 8.4.0 11.1.2 botkit npm-install-missing: No modules seem to be missing. Huzzah!
と表示されるので、モジュールは足りているはず……(?_?)。仕方ない(?)ので、よくないんでしょうけど、全部rootで実行してしまいます。
# git clone git://github.com/howdyai/botkit.git # npm-install-missing # token=[コピーしておいたAPI Token] node slack_bot.js
Slack上で、ボットユーザー名の左側が緑丸(●)=有効になりました。お話したいチャンネルに、ボットユーザーを呼びます。
/invite @[ボットユーザー名]
ボット用スクリプトによりますが、話しかけると反応します。同梱されていたslack_bot.jsを使ってみたので、「@[ボットユーザー名] Hi!」と話しかけたら「Hello.」と返事してくれました……が、スクリプトを少しいじくったら日本語が表示されません。どうやら、UTF-8で書かないといけないみたいです。
# 2017/01/07