コマンドラインで指定した画像をSlackにアップロードするRubyスクリプト(実際に動いているのはcurl)
参照
手順
- 上記のWebページを見てTokenを取得しておく(おおまかな手順は以下の通り)
- Create New App
- App Name
- Development Slack Team
- permission scopeをSend messages as sample.
- Install App To Team
- Authorize
- これでTokenが得られる
- 環境変数
SLACK_POSTER_TOKEN
にToken値を設定しておく。
$ grep SLACK_POSTER_TOKEN ~/.bash_profile
export SLACK_POSTER_TOKEN=xxxx-9999999999-999999999999-ZZZZZZZZZZZZZZZZZZZZZZZZ
- 実行
ruby slack-poster.rb test.png
コード
#!/usr/bin/env ruby
# Set your env var: SLACK_POSTER_TOKEN.
# $ grep SLACK_POSTER_TOKEN ~/.bash_profile
# export SLACK_POSTER_TOKEN=xxxx-9999999999-999999999999-ZZZZZZZZZZZZZZZZZZZZZZZZ
require 'json'
def main
if ARGV.length == 0
puts "Usage: ruby slack-poster.rb filename.png ... "
puts "Post filename.png ... to your slack channel."
abort
end
ARGV.each do |filename|
json = `curl -F file=@#{filename} -F channels=#general -F token=#{ENV['SLACK_POSTER_TOKEN']} https://slack.com/api/files.upload`
result = JSON.parse(json)
if !result["ok"]
abort("ERROR")
else
puts result["file"]["permalink"]
end
end
end
main
実行例
$ ruby slack-poster.rb test.png
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 265k 0 1381 100 264k 185 36408 0:00:07 0:00:07 --:--:-- 0
https://xxxx.example.com/files/XXXXX9999/XXXXXXXXX/test.png