使用 Webhook 在 Slack 上发布自定义 JSON 消息

posting a custom JSON message on Slack using Webhook

如何使用 slack webhook post 具有格式和缩进的自定义 JSON 消息?我正在使用 nodejs 应用

var Slack = require('slack-node');
var JsonMessage = process.argv[2];

webhookUri = "https://hooks.slack.com/services/XXXX/xxxx/xxxxxxxx";

slack = new Slack();
slack.setWebhook(webhookUri);

var textmsg = '```' + JsonMessage + '```';

slack.webhook({
  channel: "#status",
  username: "Monitor Bot",
  icon_emoji: ":ghost:",
  text: textmsg
}, function(err, response) {
  console.log(response);
});

上面的代码有助于发送 JSON 但它不是格式化的。它以字符串的形式出现。我想缩进 JSON。

谢谢。

您的 JsonMessage 参数只是一个字符串,因此它被发送到 slack。我建议通过 JSON.parse 发送它以将其转换为本机 JavaScript 对象。然后,您可以通过格式化程序发送它,以便为您正确格式化。例如

var formatter = ('format-json');
var formattedJson = formatter.plain(JSON.parse(JsonMessage));