我正在尝试在亚马逊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"
}
]
}
]
}
}
}
答案 0 :(得分:3)
截至目前,您无法使用按钮执行此操作。这些按钮有两个参数text
和value
。 当您点击某个按钮时,value
按钮会发送到服务器,text
会附加到聊天中。所以它只会将值发送回{ {1}}但无法打开超链接功能。
但是,您可以使用响应卡中的图像获得相同的功能。 Lex
是要显示的图片的网址,imageUrl
是您要打开的网址。因此,我建议您删除按钮并使用地图图像进行显示,并在attachmentLinkUrl
中提供超链接
此外,如果您想显示多个超链接,您可以在一个attachmentLinkUrl
中显示多张卡片(最多10张)。
以下是示例代码:
responseCard
您也可以查看this以获取有关响应卡的详细信息 希望它有所帮助。