[Rails5]Slackに通知

結論(コピペでいけます)

def notify_to_slack
    uri = URI.parse ( 'ここをSlackから取得したIncoming WebhookのURL' )

    text_hash = {}
    text_hash["text"] = 'Hello, World from My Application.'

    request = Net::HTTP::Post.new(uri)
    request['Content-type'] = 'application/json'
    request.body = JSON.dump(text_hash)

    response = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
      http.request (request)
    end

    result = response.body.force_encoding("utf-8")
end

resultは”ok”になる。slackからエラーが返ってきたことがないから、エラーの場合のresponse.bodyはどうなるかわからない。”error”とかかもしれない。

Slackで自作のアプリからメッセージを送る方法

準備中。。。

送信できるhashの中身

Slackの公式ページにあるが、色々機能をもったメッセージが送れる。

channelの指定もできるといくつかのサイトで見かけたが、試したところ、できなかった。(2019/05/27時点)

{
  "text": "Robert DeSoto added a new task",
  "attachments": [
    {
      "fallback": "Plan a vacation",
      "author_name": "Owner: rdesoto",
      "title": "Plan a vacation",
      "text": "I've been working too hard, it's time for a break.",
      "actions": [
        {
          "name": "action",
          "type": "button",
          "text": "Complete this task",
          "style": "",
          "value": "complete"
        },
        {
          "name": "tags_list",
          "type": "select",
          "text": "Add a tag...",
          "data_source": "static",
          "options": [
            {
              "text": "Launch Blocking",
              "value": "launch-blocking"
            },
            {
              "text": "Enhancement",
              "value": "enhancement"
            },
            {
              "text": "Bug",
              "value": "bug"
            }
          ]
        }
      ]
    }
  ]
}

便利サイト

curlのrubyコードで描いてくれるサイト

https://jhawthorn.github.io/curl-to-ruby/

コメント