В сообщениях бота Facebook не отображаются пустые строки - PullRequest
1 голос
/ 28 мая 2019

Я создал чат-бот с использованием платформы ботов Microsoft, развернул его в Azure и связал с моей страницей в Facebook.Все работает нормально, но есть небольшая проблема: в одном из сообщений, отправляемых ботом, есть комбинация из 2-3 разных строк, я хочу показать эти 3 строки, разделенные пустыми строками, поэтому я добавил escape-последовательность "\ n \n "между строк.

"Line1\n\nLine2\n\nLine3"

Это прекрасно работает, когда я тестирую его в веб-чате Azure, но в окне чата Facebook не отображаются пустые строки. Может ли кто-нибудь помочь мне в этом? Спасибо заранее.

Текущее лицо Отображение сообщения типа

Line1
Line2
Line3

Я хочу показать его как

Line 1

Line 2

Line 3 

1 Ответ

2 голосов
/ 29 мая 2019

Текст вашего сообщения проходит через довольно агрессивный анализатор 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";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...