Node.js
Slack
Botkit

無料でSlackのbotをとりあえず作ってみたよ

はじめに

まず最初に,この記事は超超超入門向けです.ご了承ください.

最近何かと話題なbot.

「自分も何か作ってみたい!」と思っても,調べてもよくわからないし何から手をつければいいのかわからない人も多いのでは??

自分もそうでした.しかもなんかbotとかつくるのはサーバとか借りたりAWSでどうのこうのとかやって絶対お金がかかる物だと思ってました.

しかし,無料でとりあえず作って遊んでみたい程度であれば簡単に作れることがわかったので,どこから手をつければいいのかわからない人や,とりあえず手っ取り早く動くもの作りたい人に向けてまとめたいと思います.

準備

まずは,先にnodejsってやつを準備しておく必要があります.

Node.js公式サイトでインストールできるので自分のOSに合ったやつを選んでください.

次にSlack上での準備です.SlackのBotの管理ページに飛びます.

そして緑色のAdd Configurationをクリック.

botのユーザ名を入力してください.今回僕はramちゃんbotを作ります.

そしたら,次の画面で出てくるIntegration Settings API Tokenと書いてある欄のxoxb-XXXXXXXXXXって感じであるAPI Tokenをコピーしておいてください.

slack_API

ここでCustomize Iconとかでbotのアイコンを変えることができます.

こんな感じでね.

ram_Icon

色々Slack側での設定が終わったら一番最後のSave Integrationをクリックして保存しておいてください.

実装

それでは実際にやっていきましょう.

まずは

mkdir bot
cd bot

みたいな感じで適当にディレクトリを作ってそこに移動しておきましょう.

そしてそこで次のコマンドを打ち込みます・

npm init

これでとりあえずenter連打しておきましょう.

するとpackage.jsonというファイルができあがります.

そして次.どんどんいきます.

npm install --save botkit

今回は,botkitというフレームワークを使うのでそれをインストールしておきます.

そしたら次は実際にコードを書いていきます.

難しそうですよね.

でも簡単.

次から書くコードをコピーするだけです.

まずはターミナルでindex.jsを開きましょう.

vi index.js

そしたら次のコードを写します.

index.js
var Botkit = require('botkit');
var controller = Botkit.slackbot();
var bot = controller.spawn({
  token: process.env.token
}).startRTM(function(err,bot,payload) {
  // 初期処理
  if (err) {
    throw new Error('Could not connect to Slack');
  }
});

//言われたことに対する返答
controller.hears(["こんにちは"],["direct_message","direct_mention","mention"],function(bot,message) {
  bot.reply(message, 'hello');
});

一応このコードで書いたbotの動作の説明をすると,Slack上でこんにちはとメンションをつけるか,botに直接DMで話しかけるとhelloと返してくれるような動作をします.

するとここまでしているうちに勝手にramちゃんがSlackにオフライン状態で居座っています.

off_ram

起動

それでは実際にramちゃんを動かしましょうか.

動かす方法もめちゃめちゃ簡単です.

ターミナルで

token=xoxb-XXXXXXXXXXXXXX node index.js

と打ち込むだけで・・・・・

てってれーん

on_ram

ramちゃんログインしました.

話しかけてみましょう.

ram_conv

こんな感じでメンション付けてこんにちはというとちゃんとhelloと返してくれました.

さいごに

今回はbotkitとnode.jsで必要最小限のbotをとりあえず作ってみました.今はただ挨拶を返すくらいですが,ここからはあなたのアイデアと工夫次第でどんどん便利なbotが作れると思います.

僕は今日の天気は?などというと今日の天気予報が載っているwebページを返してくれるようなものも作りましたが,なかなか便利です.自分から検索バーに検索して知るよりも,ramちゃんに聞いて教えてもらった方がなんだかハッピーですよね.

皆さんも色々試してみてください.

最後まで読んでくださってありがとうございました.

参考

botkit使って定期的につぶやくslackbot作る