Рендеринг HTML в ответе Amazon lex от Lambda

Я новичок в Amazon Lex. Я пытаюсь вернуть гиперссылку как часть ответа «контент» от функции Lambda на Amazon Lex. В основном я делаю следующее:

    var message = {
        'contentType': 'PlainText', 
        'content': 'We offer x,y,z. For more information, visit our <a href="www.xyz.com">website</a>'
    }

Это возвращает весь ответ в виде строки, тогда как я ожидаю, что часть html будет отображаться перед отображением на чат-боте. Я не хочу использовать responseCard под моим ответом. Можно ли включить гиперссылку в возвращаемый контент? Спасибо


person Anoop    schedule 02.05.2018    source источник


Ответы (2)


ОБРАТИТЕ ВНИМАНИЕ, ЧТО ЭТО ДЛЯ ПРЕДОСТАВЛЕНИЯ РАЗГОВОРА НА СТРАНИЦЕ HTML

У меня была такая же проблема, когда я разрабатывал HTML-страницу для отображения чата между пользователем и чат-ботом. Мне удалось решить эту проблему с помощью следующей функции Javascript:

function showResponse(lexResponse) {

    var conversationDiv = document.getElementById('conversation');
    var responsePara = document.createElement("P");
    responsePara.className = 'lexResponse';
    if (lexResponse.message) {
        var message = lexResponse.message.replace(/"/g, '\'');
        responsePara.innerHTML = message;               
        responsePara.appendChild(document.createElement('br'));
    }           
    conversationDiv.appendChild(responsePara);
    conversationDiv.scrollTop = conversationDiv.scrollHeight;
}

Для справки вы можете обратиться к вопросу, который я задал относительно этой же проблемы: LexResponse output не понимает данные HTML

person Arun Balasubramaniam    schedule 03.05.2018
comment
Спасибо за ваш ответ. Итак, в основном вы заменили двойные кавычки во всем сообщении. Это правильно? Я сделал следующее: var message = {'contentType': 'PlainText', 'content': 'Мы предлагаем x, y, z. Для получения дополнительной информации посетите наш ‹a href=www.xyz.com› веб-сайт ‹/a› '} message.replace (// g,' \ ''), и это не сработало - person Anoop; 03.05.2018
comment
Вы добавляете свое сообщение к элементу HTML? Если вы посмотрите на код, который я опубликовал, я создал тег HTML ‹p›, к которому я добавил сообщение (в котором были заменены кавычки) как innerHTML. Это то, что преобразует ответ в ссылку. Сама по себе замена двойной кавычки этого не делает. - person Arun Balasubramaniam; 03.05.2018
comment
Большое спасибо! У меня это работает. Я очень ценю вашу помощь в этом. - person Anoop; 04.05.2018

Рендеринг контента - это работа клиента. Окно тестовой консоли Lex не поддерживает рендеринг гиперссылок.
Однако, если вы развернете своего чат-бота на каком-либо канале, например facebook или slack, он будет работать нормально.

person sid8491    schedule 02.05.2018