我将Hubot与elasticsearch和slack集成在一起。 当我们查询API时,我们在使用postman时会以JSON格式获取输出。
当我们用coffeescript查询松弛时,我们得到了简单的输出。 这是代码
showHealth = (msg) ->
msg.send("Getting the health for the cluster: ")
msg.http("http://show-acc.com/_cluster/health/")
.get() (err, res, body) ->
lines = body.split("\n")
header = lines.shift()
list = [header].concat(lines.sort().reverse()).join("\n")
msg.send("/code \n ```#{list}```")
这是在松弛时打印我的简单输出。 你能不能请任何人帮助我如何更改代码以将输出打印为JSON格式?
答案 0 :(得分:0)
我相信您需要指定"mrkdwn": true
,这将允许您使用反引号代码块。但是,IMO实现格式化消息的最好方法是使用附件,其结构是具有散列属性的数组......
我使用robot.messageRoom
而不是msg.send
获得更多里程,如下所示:
# Create attachment
msg = {
attachments: [
{
fallback: 'Getting the health for the cluster: http://show-acc.com/_cluster/health/'
title: 'Getting the health for the cluster:'
title_link: 'http://show-acc.com/_cluster/health/'
text: '/code \n ```#{list}```'
mrkdwn_in: ['text']
}
]
}
# Assign channel
channel = process.env.NOTIFY_ROOM
# Send it!
robot.messageRoom channel, msg
有关详细信息,请参阅以下参考资料: