Ruby で Slack へ単にポストするだけの方法

Ruby で Slack へ単にポストするだけの方法

gem

Slack Ruby Client を用います。Slack::Incoming::Webhooks という gem もありますので*1、機会があれば触ってみるとよいかと思います。

具体的な方法

1. "Bots" アプリをワークスペースに追加する

Bots という Slack純正のアプリをワークスペースに追加します。細かい設定は後から行えばいいと思います。

2. Botを追加し、トークンを取得する

Bots アプリの設定画面から Bot を追加すると「API トークン」が取得できるのでこれを保存しておきます。取扱い注意です。

f:id:gregminster:20190226155847p:plain

3. 作成した Bot を、ポストさせたいチャンネルに招待する

Bot にポストさせたい対象のチャンネルにて、Bot を招待します。

f:id:gregminster:20190226155910p:plain

4. gem をインストールする

ここからはコードを書いていきます。まずは gem をインストールします。

$ gem install slack-ruby-client

5. ポストするためのコードを書く

最短のべた書きだと以下のようなコードになります。YOUR_TOKEN'#general''Hello, Slack bot!' の箇所は適宜変更します。このファイルを post_to_slack.rb などとして保存します。

require 'slack-ruby-client'

Slack.configure do |config|
  config.token = 'YOUR_TOKEN'
end

client = Slack::Web::Client.new
client.chat_postMessage(channel: '#general', text: 'Hello, Slack bot!')

6. 実行する

書いたファイルを実行します。出力は特にありません。

$ ruby post_to_slack.rb

7. Slack上で確認する

Bot によりポストがされていれば成功です。

発展

ここまでできたらいろいろなコードを追加して Bot を作ればよいでしょう。もろもろは 公式ドキュメント に載っているので読みながら少しずつ試すとよいかと思います。

*1:こちらは Webhooks 経由です

Powered by はてなブログ