如何让 POST 变成 Slack 的 url?

How to make POST to Slack's url?

我不能简单地 POST 到 Slack 的 url。

我需要 POST 这样的:

{ "text": "" }

到url喜欢https://something.slack.com/services/XXXXXXXX/XXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXX

先用curl命令试试

curl -X POST -H 'Content-type: application/json' --data '{"text":"This is a line of text.\nAnd this is another one."}' https://something.slack.com/services/XXXXXXXX/XXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXX

如果它能正常工作,那就小菜一碟

OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"text\":\"This is a line of text.\nAnd this is another one.\"}");
Request request = new Request.Builder()
  .url("https://something.slack.com/services/XXXXXXXX/XXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXX")
  .post(body)
  .addHeader("content-type", "application/json")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

像这样的 curl 命令将起作用:

read -r -d '' PAYLOAD << EOM
{"attachments": [{
    "text": "Hello world!"
  }]
}
EOM
curl --data-urlencode "payload=$PAYLOAD" "https://something.slack.com/services/XXXXXXXX/XXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXX"