在Lambda的Amazon lex响应中呈现HTML

时间:2018-05-02 01:00:05

标签: aws-lambda amazon-lex

我是亚马逊Lex的新手。我试图返回一个超链接作为从Lambda函数到亚马逊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。是否可以在返回的内容中包含超链接? 感谢

2 个答案:

答案 0 :(得分:1)

请注意,这是用于在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 does not understand HTML data

答案 1 :(得分:0)

内容的渲染是客户的工作。 Lex的测试控制台窗口不支持超链接渲染 但是,如果您将聊天机器人部署到某些渠道(如facebook或slack),它将正常工作。