You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Microsoft Bot Framework时Slack不识别多行换行问题

解决Slack中Bot Framework多段落文本无空白行的问题

Slack的消息渲染逻辑和Bot Framework默认的文本处理规则存在差异,默认的\n\n换行在Slack中只会被解析为单个换行,导致段落间没有空白间隔。以下是几种可行的解决办法:

方法1:使用Slack兼容的Markdown换行标签

Slack支持HTML的<br>标签来实现换行,将段落间的\n\n替换为<br><br>,同时发送消息时指定文本格式为markdown,确保Slack能正确解析标签:

const replyText = "Paragraph1<br><br>Paragraph2<br><br>Paragraph3";
await context.sendActivity(MessageFactory.text(replyText, undefined, 'markdown'));

方法2:借助Adaptive Cards实现段落间距

如果需要更灵活的排版控制,可以使用Adaptive Cards,将每个段落放在独立的TextBlock组件中,并通过spacing属性设置段落间的空白:

const adaptiveCard = {
    type: 'AdaptiveCard',
    version: '1.0',
    body: [
        { type: 'TextBlock', text: 'Paragraph1', wrap: true },
        { type: 'TextBlock', text: 'Paragraph2', wrap: true, spacing: 'medium' },
        { type: 'TextBlock', text: 'Paragraph3', wrap: true, spacing: 'medium' }
    ]
};
await context.sendActivity(MessageFactory.attachment(CardFactory.adaptiveCard(adaptiveCard)));

方法3:直接构造Slack原生格式消息

通过Bot Framework的channelData字段直接传入Slack原生消息文本,Slack会正确解析其中的\n\n为段落空白行:

const activity = {
    type: 'message',
    text: "Paragraph1\n\nParagraph2\n\nParagraph3",
    channelData: {
        text: "Paragraph1\n\nParagraph2\n\nParagraph3"
    }
};
await context.sendActivity(activity);

以上三种方法都能让Slack中显示段落间的空白行,同时不影响模拟器和Web客户端的正常渲染。

内容的提问来源于stack exchange,提问作者DrewB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 11:35:05