LoginSignup
9

More than 5 years have passed since last update.

SlackでBotに何か喋らせたくて、Rubyでコード書いてたら、いくつもエラーが出たけど、奮闘してたらやっと動いた話。

Posted at

やりたかったこと

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を動かすを参考にしつつコピペどーん!

Ruby.rb
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
スクリーンショット 2018-11-19 11.03.37.png

④ターミナルで実行

あとは

$ ruby bot.rb

とターミナルに打ち込む

うまくSlackと繋がればターミナル上に

connected!

と表示される

⑤動いた!!!!!

スクリーンショット 2018-11-19 10.52.27.png

動きましたああ

嬉しい

参考にした記事

ブラックPEOPLEくん(Slack Bot)との熾烈な戦い
rubyでslack apiを叩いてbotを動かす
slack-ruby-client/hi.rb at master · slack-ruby/slack-ruby-client

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9