我正在使用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所以我没有收到错误?
由于
答案 0 :(得分:1)
DEV_NAME
和BUILD_URL
变量扩展,以便JSON字符串有效。"
而不是'
中,以便实际扩展变量您需要escape
{/ 1}} 里面的字符串,以便它们显示在您的JSON字符串中。
SUCCESS_MESSAGE =" {\"附件\":[{\" color \":\"#2A9B3A \",\ " author_name \":\" $ {DEV_NAME} \",\" title \":\"构建状态\" ," title_link \":\" $ {BUILD_URL} \",\" text \":\"成功构建\&# 34; }]}"`
或者,您可以以更好的编程方式生成JSON。如果你的通知有点复杂,那将会有所帮助:
"