15
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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]
(https://github.com/slack-ruby/slack-ruby-client/blob/master/examples/hi_real_time/hi.rb)

15
9
0

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
15
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?