Amazon Lex 中响应卡按钮中的超链接
Hyperlink in response card button in Amazon Lex
我正在尝试在 amazon lex 中制作一张响应卡,以发出一张带有指向另一个网站的按钮的响应卡。下面是我在 aws lambda python 中使用的代码。我已经在 facebook messenger 上发布了聊天机器人。但是每当我select fb messenger 中的按钮时,按钮中的link 似乎并没有将我带到该网站。有什么办法可以让响应卡按钮变成hyperlink按钮?
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"
}
]
}
]
}
}
}
截至目前,您无法使用按钮执行此操作。这些按钮有两个参数 text
和 value
。 当你点击一个按钮时,按钮的 value
被发送到服务器并且 text
被附加到聊天中。 所以它只会发送值返回 Lex
但无法打开超链接功能。
不过,您可以在响应卡中使用图像来实现相同的功能。 imageUrl
是要显示的图片url,attachmentLinkUrl
是你要打开的url。所以我建议您删除按钮并使用要显示的地图图像并在 attachmentLinkUrl
.
中提供您的超链接
此外,如果您想显示多个超链接,您可以在单个 responseCard
.
中显示多张卡片(最多 10 张)
下面是示例代码:
return {
'dialogAction': {
'type': 'Close',
'fulfillmentState': 'Fulfilled',
'message': {
'contentType': 'PlainText',
'content': message
},
'responseCard': {
'version': '0',
'contentType': 'application/vnd.amazonaws.card.generic',
'genericAttachments': [
{
'title': 'Here is a list of hospitals',
'subTitle': 'Below is a map',
'attachmentLinkUrl': 'https://www.google.com/maps/search/?api=1&query=nearby+hospitals',
'imageUrl': 'https://images.sftcdn.net/images/t_optimized,f_auto/p/95612986-96d5-11e6-af7c-00163ec9f5fa/3771854867/google-maps-screenshot.png'
},
{
'title': 'Here is a list of medical shops',
'subTitle': 'Below is a map',
'attachmentLinkUrl': 'https://www.google.com/maps/search/?api=1&query=nearby+medical+shops',
'imageUrl': 'https://images.sftcdn.net/images/t_optimized,f_auto/p/95612986-96d5-11e6-af7c-00163ec9f5fa/3771854867/google-maps-screenshot.png'
}
]
}
}
}
您也可以查看 以了解有关回复卡的详细信息。
希望对你有帮助。
我正在尝试在 amazon lex 中制作一张响应卡,以发出一张带有指向另一个网站的按钮的响应卡。下面是我在 aws lambda python 中使用的代码。我已经在 facebook messenger 上发布了聊天机器人。但是每当我select fb messenger 中的按钮时,按钮中的link 似乎并没有将我带到该网站。有什么办法可以让响应卡按钮变成hyperlink按钮?
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"
}
]
}
]
}
}
}
截至目前,您无法使用按钮执行此操作。这些按钮有两个参数 text
和 value
。 当你点击一个按钮时,按钮的 value
被发送到服务器并且 text
被附加到聊天中。 所以它只会发送值返回 Lex
但无法打开超链接功能。
不过,您可以在响应卡中使用图像来实现相同的功能。 imageUrl
是要显示的图片url,attachmentLinkUrl
是你要打开的url。所以我建议您删除按钮并使用要显示的地图图像并在 attachmentLinkUrl
.
中提供您的超链接
此外,如果您想显示多个超链接,您可以在单个 responseCard
.
下面是示例代码:
return {
'dialogAction': {
'type': 'Close',
'fulfillmentState': 'Fulfilled',
'message': {
'contentType': 'PlainText',
'content': message
},
'responseCard': {
'version': '0',
'contentType': 'application/vnd.amazonaws.card.generic',
'genericAttachments': [
{
'title': 'Here is a list of hospitals',
'subTitle': 'Below is a map',
'attachmentLinkUrl': 'https://www.google.com/maps/search/?api=1&query=nearby+hospitals',
'imageUrl': 'https://images.sftcdn.net/images/t_optimized,f_auto/p/95612986-96d5-11e6-af7c-00163ec9f5fa/3771854867/google-maps-screenshot.png'
},
{
'title': 'Here is a list of medical shops',
'subTitle': 'Below is a map',
'attachmentLinkUrl': 'https://www.google.com/maps/search/?api=1&query=nearby+medical+shops',
'imageUrl': 'https://images.sftcdn.net/images/t_optimized,f_auto/p/95612986-96d5-11e6-af7c-00163ec9f5fa/3771854867/google-maps-screenshot.png'
}
]
}
}
}
您也可以查看
希望对你有帮助。