Slack Ruby ClientでSlackにメッセージを投げる
自前でウェブから情報を集める手段を作りたくて考え中。
スクレイピングの方はAWS Lambdaで動かせばいいとして、集めた情報をどこに集約するのがいいのかなと。
メール?フィード?Slack?
とりあえずSlackに投げる方法調べて試してみるかと。
まあSlack普段あんまり使ってないんだけど。
SlackのウェブAPIを使うにはトークンが必要で、トークンを得るためにAppを作るものらしい。
Slack Ruby Clientを使ってやっていく。
手順
- 1. Slack App で「My Alert」という名前のAppを作る
- 2. OAuth & Permissions で chat:write を追加
- 3. Install App を押す
- 4. Slackの#genelral上で /invite @my_alert
- 5. サンプルコード実行
4をやってなくて Slack::Web::Api::Errors::NotInChannel とか言うエラーが出て少しハマった
サンプルコード
ほぼSlack Ruby Client公式のサンプルまんまじゃが。
require "slack-ruby-client"
Slack.configure do |config|
config.token = ENV['SLACK_API_TOKEN']
end
client = Slack::Web::Client.new
client.auth_test
res = client.chat_postMessage(channel: "#general", text: "Hello World", as_user: true)
pp res