やりたいこと
- slack botからddlをsnippetで投下
- snippetの設定言語をsqlに設定していい感じに
- 折りたたんだ状態で投下する(できなかった...)
現状
- メッセージに```を入れて
コード
として認識させる - 折りたたまれず見た目が悪い
- あまりにddlが長いと分割されてコードと認識されない
やり方
- slack apiのfiles.uploadを使用
- modeでsnippetを指定(デフォでsnippetだったので省略)
- まずcurl文で検証
hello_snippet.sh
curl -F channels={CHANNEL_NAME} -F content="Hello snippet" -F token={SLACK_TOKEN} https:/
/slack.com/api/files.upload
-次にfaradayを使ってPOST
hello_snippet.rb
require 'faraday'
require 'json'
slack_uri="https://slack.com/api/files.upload"
conn = Faraday::Connection.new(:url => slack_uri) do |builder|
builder.request :url_encoded # リクエストパラメータを URL エンコードする
#builder.response :logger # リクエストを標準出力に出力する
builder.adapter :net_http # Net/HTTP をアダプターに使う
end
res = conn.post do |req|
req.body = {
"title"=>"Hello snippet",
"filetype"=>"sql",
"token"=>SLACK_TOKEN,
"channels"=>CHANNEL_NAME,
"content"=>"Hello snippet"
}
end
puts JSON.load(res.body)['ok']