2017-06-29 7 views
0

Ich habe Hubot mit elasticsearch und slack integriert. Wenn wir die API abfragen, erhalten wir die Ausgabe im JSON-Format, wenn wir Postman verwenden.Wie bekomme ich JSON-Ausgabe mit Coffeescript?

Wenn wir von slack mit coffeescript abfragen, erhalten wir eine einfache Ausgabe. Hier ist der Code

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}```") 

Das bin ich in slack Ebene Ausgabe gedruckt wird. Könnte mir bitte jemand helfen, wie man den Code ändert, um die Ausgabe als JSON-Format zu drucken?

Antwort

0

Ich glaube, dass Sie "mrkdwn": true angeben müssen, die Ihnen ermöglichen, Backticks für Codeblöcke zu verwenden. Allerdings IMO die schönste Art und Weise formatierte Nachrichten zu erreichen, ist Attachments verwendet wird, von dem die Struktur ein Array mit Hash-Eigenschaften ...

Ich habe auch mehr Kilometer robot.messageRoom statt msg.send, so etwas wie dies mit:

# 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 

Siehe folgende refs für weitere Infos: