Amazon Lex中响应卡按钮中的超链接

时间:2018-02-01 03:32:02

标签: python amazon-web-services aws-lambda facebook-chatbot amazon-lex

我正在尝试在亚马逊lex中制作一张响应卡,以提供一个响应卡,其中包含一个通向另一个网站的按钮。下面是我在aws lambda python中使用的代码。我在facebook messenger上发布了聊天机器人。但每当我选择fb messenger中的按钮时,按钮中的链接似乎不会将我带到网站。有没有办法让响应卡按钮变成超链接按钮?

def location(intent_request):

    session_attributes = intent_request['sessionAttributes'] if intent_request['sessionAttributes'] is not None else {}

    return {
        'dialogAction': {
            'type': 'Close',
            'fulfillmentState': 'Fulfilled',
            'message': {
                'contentType': 'PlainText',
                'content': 'Here is a map'
            },
            'responseCard': {
            'version': '17',
            'contentType': 'application/vnd.amazonaws.card.generic',
            'genericAttachments': [
                {
                'title': 'Here is a list of hospitals',
                'subTitle': 'Below is a map',
                "buttons":[
                     {
                        "text":"Show Google Maps",
                        "value":"https://www.google.com/maps/search/?api=1&query=nearby+hospitals"
                     }
                    ]
                }
            ]
            }
        }
    }

enter image description here

1 个答案:

答案 0 :(得分:3)

截至目前,您无法使用按钮执行此操作。这些按钮有两个参数textvalue当您点击某个按钮时,value按钮会发送到服务器,text会附加到聊天中。所以它只会将值发送回{ {1}}但无法打开超链接功能。

但是,您可以使用响应卡中的图像获得相同的功能。 Lex是要显示的图片的网址,imageUrl是您要打开的网址。因此,我建议您删除按钮并使用地图图像进行显示,并在attachmentLinkUrl中提供超链接 此外,如果您想显示多个超链接,您可以在一个attachmentLinkUrl中显示多张卡片(最多10张)。

以下是示例代码:

responseCard

您也可以查看this以获取有关响应卡的详细信息 希望它有所帮助。