无效的有效负载 - Slack api JSON

时间:2017-04-03 08:16:08

标签: json groovy

我正在使用groovy脚本使用slack api发送POST,目前我正在返回invalid_payload,我认为这很可能是由于我的JSON格式化,我知道slack api需要它带有双引号的JSON但我似乎无法将变量传递给JSON对象

SUCCESS_MESSAGE = '{"attachments": [{"color": "#2A9B3A", "author_name": ${DEV_NAME}, "title": "Build Status", "title_link": ${BUILD_URL}, "text": "Successful Build" }]}'
def response = ["curl", "-X", "POST", "-H", "Content-Type: application/json", "-d", "${SUCCESS_MESSAGE}", "https://hooks.slack.com/services/${SLACK_WEBHOOK}"].execute().text

有谁知道我如何正确格式化我的SUCCESS_MESSAGE var所以我没有收到错误?

由于

1 个答案:

答案 0 :(得分:1)

  1. 您需要引用DEV_NAMEBUILD_URL变量扩展,以便JSON字符串有效。
  2. 您需要将整个字符串括在"而不是'中,以便实际扩展变量
  3. 您需要escape {/ 1}} 里面的字符串,以便它们显示在您的JSON字符串中。

    SUCCESS_MESSAGE =" {\"附件\":[{\" color \":\"#2A9B3A \",\ " author_name \":\" $ {DEV_NAME} \",\" title \":\"构建状态\" ," title_link \":\" $ {BUILD_URL} \",\" text \":\"成功构建\&# 34; }]}"`

  4. 或者,您可以以更好的编程方式生成JSON。如果你的通知有点复杂,那将会有所帮助:

    "