#やりたかったこと
Slackで誰かの発言に反応してくれるBotを作る…!!
すぐできると思ったら意外と手こずってしまった
#Botを動かすための手順
##①SlackのBot作成
Bot作成は意外と簡単
詳しくはブラックPEOPLEくん(Slack Bot)との熾烈な戦いへどうぞ
##②ターミナルでGemをインストール
$ gem install slack-ruby-client
としてslack-ruby-client
をインストールする
Fetching: gli-2.18.0.gem (100%)
Successfully installed gli-2.18.0
Fetching: hashie-3.6.0.gem (100%)
Successfully installed hashie-3.6.0
Fetching: slack-ruby-client-0.13.1.gem (100%)
Successfully installed slack-ruby-client-0.13.1
Parsing documentation for gli-2.18.0
Installing ri documentation for gli-2.18.0
Parsing documentation for hashie-3.6.0
Installing ri documentation for hashie-3.6.0
Parsing documentation for slack-ruby-client-0.13.1
Installing ri documentation for slack-ruby-client-0.13.1
Done installing documentation for gli, hashie, slack-ruby-client after 1 seconds
3 gems installed
となればインストール完了!
##③記事を参考にコードをコピペして貼り付ける!笑
rubyでslack apiを叩いてbotを動かすを参考にしつつコピペどーん!
require 'slack-ruby-client'
Slack.configure do |conf|
conf.token = 'xoxb-*****************'
end
# RTM Clientのインスタンス生成
client = Slack::RealTime::Client.new
# slackに接続できたときの処理
client.on :hello do
puts 'connected!'
client.message channel: 'your_channel_id', text: 'connected!'
end
# ユーザからのメッセージを検知したときの処理
client.on :message do |data|
if data['text'].include?('こんにちは')
client.message channel: data['channel'], text: "Hi!"
end
if data['text'].include?('かしこい') || data['text'].include?('えらい')
client.message channel: data['channel'], text: "Thank you!"
end
if data['text'].include?('おやすみ')
client.message channel: data['channel'], text: "Good night"
end
end
# Bot start
client.start!
ちなみにxoxb-*****************
の部分は
bot作成後の以下の画面の下の方のTOKENを書けばOK
##④ターミナルで実行
あとは
$ ruby bot.rb
とターミナルに打ち込む
うまくSlackと繋がればターミナル上に
connected!
と表示される
##⑤動いた!!!!!
動きましたああ
嬉しい
#参考にした記事
ブラックPEOPLEくん(Slack Bot)との熾烈な戦い
rubyでslack apiを叩いてbotを動かす
[slack-ruby-client/hi.rb at master · slack-ruby/slack-ruby-client]
(https://github.com/slack-ruby/slack-ruby-client/blob/master/examples/hi_real_time/hi.rb)