sumikko engineer blog

すみっこが落ち着くエンジニアのブログです。

Slackに投稿する

たまに書くのでコピペできるようにしておく。

Google Apps Script

class Slack {
  constructor() {
    this.slackUrl = "slackのパス"
    this.channel = "#channel"
    this.icon = ":penguin"
    this.userName = 'penguin'
  }

  sendMessage(text) {
    var payload={
      "text": text,
      "channel" : this.channel,
      "username": this.userName,
      "icon_emoji": this.icon
    };
    var options = {
      "method" : "POST",
      "payload" : JSON.stringify(payload),
      "muteHttpExceptions": false,
    }
    UrlFetchApp.fetch(this.slackUrl, options);
  }
}

Ruby

require 'singleton'
require 'uri'
require 'net/http'
require 'openssl'

class Slack
  include Singleton

  def initialize(channel, icon_emoji)
    @channel = channel
    @icon_emoji = icon_emoji
    @url = "slackのパス(configとかにでも定義しておく)"
  end

  def send_message(message)
    slack_params = {
      text: message,
      channel: @channel,
      icon_emoji: @icon_emoji
    }
    uri  = URI.parse(@url)
    http = Net::HTTP.new(uri.host, uri.port)
    if uri.scheme == "https"
      http.use_ssl = true
      http.verify_mode = OpenSSL::SSL::VERIFY_NONE
    end
    http.start do
      request = Net::HTTP::Post.new(uri.path)
      request.set_form_data(payload: slack_params.to_json)
      http.request(request)
    end
  end
end