3

CURL 経由で Slack の着信 API エンドポイントに POST できますが、以下を試してみると機能しません。オフの場合はフォーマットを想定しています。どうすればこれを修正できますか?

parms = {text: text_for_slack, channel: "#customer_sessions", username: "SessionBot", icon_emoji: ":raised_hands:"}
x = Net::HTTP.post_form(URI.parse(ENV['SessionSlackURL'].to_s), parms.to_s)
4

1 に答える 1

11

2 つの方法を使用して投稿できます (着信 Webhook の Slack 構成からのテキスト)。

上記の Webhook URL にデータを送信するには、次の 2 つのオプションがあります。 JSON 文字列を POST 要求のペイロード パラメータとして送信する JSON 文字列を POST 要求の本文として送信する

json を本体に挿入します。

require "net/http"
require "uri"
require "json"

parms = {
    text: text_for_slack, 
    channel: "#customer_sessions", 
    username: "SessionBot", 
    icon_emoji: ":raised_hands:"
}

uri = URI.parse(ENV['SessionSlackURL'])
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Post.new(uri.request_uri)
request.body = parms.to_json

response = http.request(request)

パラメータとしてのjson

parms_form = { 
    "payload" => {
        text: text_for_slack, 
        channel: "#customer_sessions", 
        username: "SessionBot", 
        icon_emoji:":raised_hands:"
        }.to_json
    }

request = Net::HTTP::Post.new(uri.request_uri)
request.set_form_data(parms_form)
于 2015-06-25T20:37:20.990 に答える