目的
- 簡単なslackアプリを作成する方法をまとめる。
成果内容
- 新規のワークスペースを作成してbotを追加する。
- bot宛てに「ping」と送信された時に、「pong」と返答をする基本的なbotを作成する。
実施概要
- テスト用のワークスペースを作成する。
- slack APIを使用してbotを作成する。
- 必要なGemをインストールする。
- Rubyでコードを書く。
- slackアプリで試してみる。
実施詳細
- テスト用のワークスペースを作成する。
-
slack APIを使用してbotを作成する。
- 下記リンク先に飛び「Start Building」をクリックする。 https://api.slack.com
- 下記画像のようなウインドウが開く。
- 「App Name」には今回作成する任意のbot名を入力する。(筆者はbot名を「test」とした。)
- 「Development Slack Workspace」の▼をクリックし「Sign in to another workspace」をクリックする。
- 先に作成したワークスペースを選択する。(筆者は「miriwo_test」というワークスペースを作成した。)
- 「App Name」と「Development Slack Workspace」に自分の意図した内容が記載されていることを確認する。
- 「Create App」をクリックする。
- 下記の画面になる。
- 画面中央の「Bot」をクリックする。
- 「Add a Bot User」をクリックする。
- 「Always Show My Bot as Online」をOnにして、「Add Bot User」をクリックする。
- 左側のメニューの「Settings」の「Basic Infomation」をクリックして、「Add features and functionality」をクリックする。
- 下記の画面になったことを確認する。
- 「Permission」をクリックする。
- 「Install App to Workspace」をクリックする。
- 「許可する」をクリックする。
- 下記の画面になったことを確認する。(この画面の内容を後で使用するため、消さない方が楽である。)
-
必要な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名を
test
としたため下記の画像ようになる。 -
- 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を再開させる。