javascript - botbuilder 是否支持 Facebook Messenger 的按钮模板?
问题描述
在阅读了这个现在很老的问题后: Bot Framework 是否支持 Facebook Messenger 的按钮模板?并使用 Bot Framework 查看可用卡片列表。
botbuilder 目前是否支持Facebook Messenger 的按钮模板?我希望解决方案与通道无关,因此不需要操纵 JSON 来实现这一点。我尝试使用没有标题和图像的英雄卡,但结果并不美观,正常文本保持粗体。
这是呈现 de card 的代码:
const attachment = CardFactory.heroCard(
"",
"BotFramework Hero Card",
CardFactory.images([]),
CardFactory.actions([
{
type: "openUrl",
title: "Get started",
value: "https://docs.microsoft.com/en-us/azure/bot-service/"
},
{
type: "openUrl",
title: "Get started2",
value: "https://docs.microsoft.com/en-us/azure/bot-service/"
}
])
);
return MessageFactory.attachment(attachment);
也尝试使用 ThumbnailCard 但显示相同的结果......
解决方案
如果您通过 Facebook 连接器发送英雄卡片,如果卡片只有按钮且没有文本或图像,它将自动转换为按钮模板,否则将转换为通用模板。如果您想发送您选择的自定义模板,您可以使用Bot Framework 频道数据。它可能看起来像这样:
reply = {
'type': ActivityTypes.Message,
'channelData': {
'attachment': {
'type': 'template',
'payload': {
'template_type': 'button',
'text': 'Button Template',
'buttons': buttons
}
}
}
};
请注意,虽然您的问题的答案是肯定的,但您可能仍然不满意。您只要求一种使用按钮模板而不是通用模板的方法,但您的理由是您希望它看起来更好。问题在于外观将取决于您使用的 Messenger 客户端,并且在某些客户端中,此按钮模板看起来与通用模板没有什么不同。如果您尝试了按钮模板但仍然不满意,那么您可能需要进行一些试验。我认为测试这一点的最快方法是使用Bot Framework REST API在像 Postman 这样的 HTTP 应用程序中作为机器人发送消息。
推荐阅读
- couchdb - CouchDB v1.7.1 数据库复制到 CouchDB v2.3.0 数据库失败
- xcode - 在 Xcode 编辑器中看不到 3D 模型文件
- excel - “无法运行宏 (...)。此工作簿中可能没有该宏,或者所有宏都可能被禁用。”
- sql - 尽可能在没有 ID 的情况下将 INSERT INTO 作为错误/重复证明
- vespa - 可以按count()存储吗?
- reactjs - 减速器动作没有动态更新
- python - 主持两个不同的项目 django
- mysql - res.sendFile in the callback of a sql query
- sql-server - 在 SQL Server 中的 ^ 之后取正确的字符串
- jenkins - Jenkinsfile - 如何为所有阶段传递参数