目的
- 簡単なslackアプリを作成する方法をまとめる。
成果内容
- 新規のワークスペースを作成してbotを追加する。
- bot宛てに「ping」と送信された時に、「pong」と返答をする基本的なbotを作成する。
実施概要
- テスト用のワークスペースを作成する。
- slack APIを使用してbotを作成する。
- 必要なGemをインストールする。
- Rubyでコードを書く。
- slackアプリで試してみる。
実施詳細
-
テスト用のワークスペースを作成する。
-
slack APIを使用してbotを作成する。
-
下記リンク先に飛び「Start Building」をクリックする。
https://api.slack.com -
「Development Slack Workspace」の▼をクリックし「Sign in to another workspace」をクリックする。
-
「App Name」と「Development Slack Workspace」に自分の意図した内容が記載されていることを確認する。
-
「Create App」をクリックする。
-
左側のメニューの「Settings」の「Basic Infomation」をクリックして、「Add features and functionality」をクリックする。
-
必要なGemをインストールする。
-
ターミナルを開く。
-
任意のフォルダに移動し下記コマンドを実行する。
$ vi Gemfile
- Gemfileが開けたら
i
をキー入力して下記の内容を記載する。
source 'https://rubygems.org'
gem 'slack-ruby-bot'
gem 'async-websocket', '~>0.8.0'
- 記載が完了したら
esc
をキー入力→:wq
をキー入力してgemfileを保存する。 - 下記コマンドを実行してGemをインストールする。
$ bundle install
- Rubyでコードを書く。
- Gemfileがあるフォルダに移動し、下記コマンドを実行してrubyのファイルを作成する。
$ vi pongbot.rb
- pongbot.rbが開けたら
i
をキー入力して下記の内容を記載する。
require 'slack-ruby-bot'
class PongBot < SlackRubyBot::Bot
command 'ping' do |client, data, match|
client.say(text: 'pong', channel: data.channel)
end
end
PongBot.run
- 記載が完了したら
esc
をキー入力→:wq
をキー入力してpongbot.rbを保存する。 - サービスを起動させる。
- 下記の画像の画面を開き「Bot User OAuth Access Token」の「Copy」をクリックする。
- ターミナルに移動し、pongbot.rbが見えフォルダに移動し、下記コマンドを実行する。(
$ SLACK_API_TOKEN=
のあとは直前でコピーした内容を記載する。←コピーした内容は筆者の画像の文字列とは異なります。)
$ SLACK_API_TOKEN=xoxb-803692245030-803348029943-XXXXXXXXXXXXXXXXXXXXXXXX bundle exec ruby pongbot.rb
-
上記コマンドを実行するとコンソールにたくさん文字が流れるが気にしないで良い。ターミナルは閉じずにそのままにする。
-
botのユーザをslackのワークスペースに追加する。
-
slackで最初に作成したワークスペースを開く。(slackのアプリにワークスペースを追加する方法はこちら)
-
任意のチャンネルで下記の内容を入力し「送信ボタン」をクリックする。
※bot名は「Bot User OAuth Access Token」の「Copy」を行った画面の左上(slack apiロゴの下あたり)に記載されています。
/invite @botのユーザ名
-
botが正しく動作するか試してみる。
-
botのユーザを追加したワークスペースの任意のチャンネルで下記の内容を入力し「送信ボタン」をクリックする。
※bot名は「Bot User OAuth Access Token」の「Copy」を行った画面の左上(slack apiロゴの下あたり)に記載されています。
@botユーザ名 ping
反応する文言の修正や返してくる言葉を変えたい時はpongbot.rbのファイルを修正する必要がある。
- コマンド
$ SLACK_API_TOKEN=xoxb-803692245030-803348029943-XXXXXXXXXXXXXXXXXXXXXXXX bundle exec ruby pongbot.rb
を実行したターミナルで「control」+「c」をする。 - pongbot.rbを編集する。
- コマンド
$ SLACK_API_TOKEN=xoxb-803692245030-803348029943-XXXXXXXXXXXXXXXXXXXXXXXX bundle exec ruby pongbot.rb
を実行してbotを再開させる。