Facebook机器人消息未显示空行

时间:2019-05-28 11:13:04

标签: facebook azure botframework chatbot

我已经使用Microsoft bot框架创建了一个聊天机器人,并将其部署在Azure上,并将其链接到我的Facebook页面。一切工作正常,但有一个小问题,即漫游器发送的消息之一包含2-3条不同的行的组合,我想显示由空行分隔的那3行,因此我添加了转义序列“ \ n \行之间是n”。

"Line1\n\nLine2\n\nLine3"

当我在Azure Web聊天中测试它但Facebook聊天窗口不显示空白行时,此方法很好用,有人可以帮助我吗?谢谢!

当前的头像显示消息类似

Line1
Line2
Line3

我想显示为

Line 1

Line 2

Line 3 

1 个答案:

答案 0 :(得分:0)

您的消息文本正在通过一个相当激进的Markdown解析器运行,该解析器正在剥离额外的换行符。您可以选择几种处理方式。

选项1

如果将文本设置为频道数据而不是实际活动文本,则不会通过Markdown解析器运行该文本:

var text = "Line1\n\nLine2\n\nLine3";
var activity = turnContext.Activity.CreateReply();
activity.ChannelData = new { text };
await turnContext.SendActivityAsync(activity);

选项2

如果将文本格式设置为纯文本,则文本将不会通过Markdown解析器运行:

var text = "Line1\n\nLine2\n\nLine3";
var activity = turnContext.Activity.CreateReply(text);
activity.TextFormat = TextFormatTypes.Plain;
await turnContext.SendActivityAsync(activity);

选项3

如果您将通道数据用于其他用途,并且不想将文本格式设置为纯文本,则可以始终使用<br/>代替\n

var text = "Line1<br/><br/>Line2<br/><br/>Line3";