Ruby で Slack へ単にポストするだけの方法
gem
Slack Ruby Client を用います。Slack::Incoming::Webhooks という gem もありますので*1、機会があれば触ってみるとよいかと思います。
具体的な方法
1. "Bots" アプリをワークスペースに追加する
Bots
という Slack純正のアプリをワークスペースに追加します。細かい設定は後から行えばいいと思います。
2. Botを追加し、トークンを取得する
Bots
アプリの設定画面から Bot を追加すると「API トークン」が取得できるのでこれを保存しておきます。取扱い注意です。
3. 作成した Bot を、ポストさせたいチャンネルに招待する
Bot にポストさせたい対象のチャンネルにて、Bot を招待します。
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 経由です