Pythonプログラミングの勉強法

SlackbotをJavascript(Node.js)で作成しよう

本記事ではSlackbotをJavaScript(Node.js)で作成する方法について解説します。

◆Slackbotとは?
Slackbotはインターネット上の操作を自動実行するためのプログラムです。

Slackbotの場合はSlackからBotに指示をすることでプログラムを自動実行できます。

ユーザーと同じように会話ができる他、特定の言葉をSlackに入力することでスクリプトの実行を始めとした様々な処理を行うことができるようになります。

【Node.js】SlackbotをBotkitで作成する

JavaScript(Node.js)でSlackbotを導入する方法はいくつかありますが、今回はBotkitのパッケージを使用して導入する方法を紹介します。

Botkitパッケージのインストール

npmコマンドでBotkitパッケージをインストールします。

$ npm install botkit

Slackbot用のAPIトークンを取得する

SlackよりBotに使うためのAPIトークンを取得します。

取得手順は以下の通り。

1.ワークスペースのAPPフォルダに移動します。
https://xxxxxxxxx.slack.com/apps

2.サイドメニューの「カテゴリ」から「Bot関連を選択」します。
3.「Hubot」を選択します。
4.「設定の追加」ボタンをクリックします。
5.名前を入力して「Hubotインテグレーションの追加」を押します。
6.「API トークン」に書かれている内容をコピーします。

◆今回作成したBot:ターコイズくん

画像はSlackの「ghost」を使用しています。

【Node.js】SlackbotをBotkitの実装例と実行例

パッケージにsampleファイル「slack_bot.js」があるのでこちらをコピーして必要な箇所を修正します。

node_modules
┗botkit
__┗examples
____┗slack_bot.js

BotkitのパスとAPIトークンの書き換えが必要です。

◆記述例

◆起動方法
nodeコマンドで起動します。

node slack_bot.js

◆実行結果
Botkitの実行例

応答内容は「controller.hears()」に記述します。

第一引数は反応するメッセージです。

['こんにちは', 'Hello'] のようにカンマで区切ることで複数のメッセージを指定できます。

第二引数はメッセージに対する応答方法です。

メンション(@でターゲットを指定すること)がある場合に応答、メンションがなくても応答、ダイレクトメッセージの時に応答など細かく指定することができます。

カンマ区切りで複数指定可能です。
'direct_message,direct_mention,mention'

応答方法の種類は以下の通り。

direct_message:ダイレクトメッセージの場合に応答します
direct_mention,mention:メンションされた場合に応答します
ambient:メンションがない場合に応答します

◆「direct_mention」と「mention」の違い
「direct_mention」は先頭でメンションされた場合のみ応答します。

対して「mention」はメッセージ中のどこか(先頭以外)でメンションされていれば応答します。

「direct_mention」の場合
Botkitの実行例

先頭でメンションした場合のみ応答します。

「mention」の場合
mentionの実行例

先頭以外でメンションした場合のみ応答します。

全てのメンションに対して応答したい場合は「direct_mention」と「mention」の両方を指定しましょう。

◆応答方法
応答は「controller.storage.users.get()」の中に記述します。
「bot.reply()」の中にメッセージを記述します。

ちょっと長いので以下のように関数化しておくと良いでしょう。

以上、JavaScriptでSlackbotを作成する手順についてでした。

今回は挨拶を返すだけでしたが、Slackbotを活用することでスクリプトの実行やファイルの内容を読み込んで表示するなど様々な処理が可能です。

是非、試してみてください。

こちらの記事も読まれています

  • この記事を書いた人
miyabikno

みやびの

住んでいるところ:神奈川県。 プログラミング歴は13年ほど。 ※プログラミングに関する無料相談・質問への回答は行っていません。

-Pythonプログラミングの勉強法
-

Copyright© みやびのどっとぴーわい , 2020 All Rights Reserved Powered by AFFINGER5.