斯莱克僵尸不解释JSON消息(Slack bot doesn't interpret jso

2019-09-29 05:10发布

我有松弛Azure集成的问题。 我想建立使用斜线命令的机器人,它发送请求到蔚蓝的功能。 该函数执行后,我想结果返回给用户。 我使用JSON和简单的return语句在我的函数结束。

问题是,松弛不解释该JSON,但它会认为是正常的串并打印原始JSON。

我认为,在JSON正确写入,因为我在松块包生成器测试了它,并把它交给我的频道,它是正确显示。

这是座包生成器消息的样子(这就是它应该怎么样子):

这是机器人响应的样子:

下面是这个JSON字符串

[{"type":"section","text":{"type":"mrkdwn","text":"• https://www.nike.com/pl/t/jordan-why-not-buty-do-koszykowki-zer02-6P4dl5/AO6219-100?nst=0&cp=euns_kw_pla!pl!goo!cssgeneric!c!!!305375159198&ds_rl=1252249&gclid=Cj0KCQjwjrvpBRC0ARIsAFrFuV9pv41cqv0h8USkHXpK0yay6pqZGnAklqJukHC-JCi3EGHVQX3MELsaAmmUEALw_wcB&gclsrc=aw.ds\\n"}}]

这是我的功能构建JSON有效载荷

public JArray FormatResponse(List<string> results)
        {
            var links = ExtractLinksFromResponse(results);

            string textString = string.Empty;
            foreach (var l in links)
            {
                textString += $@"• {l}\n";
            }


            dynamic response = new ExpandoObject();
            response.type = "section";

            dynamic text = new ExpandoObject();
            text.type = "mrkdwn";
            text.text = textString;

            response.text = text;

            string json = JsonConvert.SerializeObject(response);

            json.Replace("&", "&amp;");
            json.Replace("<", "&lt;");
            json.Replace(">", "&gt;");

            var parsedJson = JObject.Parse(json);

            var jsonArray = new JArray();
            jsonArray.Add(parsedJson);

            return jsonArray;
        }

这里是我的“主”蔚蓝的功能,我称之为FormatResponse,并返回到我的时差BOT的一部分:

            var responseContent = responseFormatter.FormatResponse(results);

            var response = req.CreateResponse(HttpStatusCode.OK, responseContent, JsonMediaTypeFormatter.DefaultMediaType);
            response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
            return response;

也许有一些缺失的头在我的回应还是应该以另一种方式把它?

Answer 1:

你的反应是缺少blocks属性,它要告诉你有布局块在您的邮件懈怠。

一个完整的消息JSON看起来是这样的:

{
    "blocks": [{
        "type": "section",
        "text": {
            "type": "mrkdwn",
            "text": "• https://www.nike.com/pl/t/jordan-why-not-buty-do-koszykowki-zer02-6P4dl5/AO6219-100?nst=0&cp=euns_kw_pla!pl!goo!cssgeneric!c!!!305375159198&ds_rl=1252249&gclid=Cj0KCQjwjrvpBRC0ARIsAFrFuV9pv41cqv0h8USkHXpK0yay6pqZGnAklqJukHC-JCi3EGHVQX3MELsaAmmUEALw_wcB&gclsrc=aw.ds\\n"
        }
    }]
}


文章来源: Slack bot doesn't interpret json message