【问题标题】:Chat bot-Can I display html content using node.js in Microsoft bot framework & bot builder聊天机器人-我可以在 Microsoft 机器人框架和机器人构建器中使用 node.js 显示 html 内容吗
【发布时间】:2018-04-25 23:49:09
【问题描述】:

我正在使用 node.js 在 azure 上开发一个聊天机器人。它是一个数据可视化机器人,它使用 d3 库生成 html 格式的图表并显示给用户。 Microsoft bot builder 似乎不支持 html 格式。但我浏览了这个链接: https://blog.botframework.com/2017/09/07/html-not-supported-web-chat/ 它说有一种方法可以启用 html 内容: “如果 Web Chat 中的 HTML 呈现是您的应用程序的关键功能,您可以从 GitHub 克隆或复制 Web Chat 源代码的副本,并启用它(在您自己的自定义 Web Chat 客户端上)。” 我试图克隆文件并将“html:false”更改为“html:true”。但它不起作用。

谁能告诉我我能做什么?真的很感激!!!

【问题讨论】:

  • 另外,我在将 d3 library tgt 与聊天机器人链接时遇到问题。 cos d3需要在html网页上绘制图表,但是聊天机器人没有d3可以在其上绘制图表的网页。
  • 当您尝试克隆 Web Chat 存储库时遇到什么错误?此外,这里有一个在机器人中呈现为图像的 vega 图表的有趣示例:github.com/nwhitmont/botbuilder-vega
  • 谢谢埃里克!这很有帮助。我会试一试的。
  • 你知道任何用 vega 为机器人创建图表的例子吗?就像您向我展示的代码一样,图表已经以 json 格式创建(如果我没记错的话?)并存储在本地目录中:./charts/county-unemployment.vg.json。但我不确定如何创建它。我浏览了 vega 教程,它们都包含 html 页面。我不确定如何在没有 html 页面的机器人服务中做到这一点

标签: node.js azure bots botframework


【解决方案1】:

根据您尝试可视化的数据,您或许可以使用 Google Image Charts 之类的服务:https://developers.google.com/chart/image/docs/chart_playground

使用此服务,代码如下:

// attach the card to the reply message
var msg = new builder.Message(session).addAttachment(createHeroCard(session));
session.send(msg);


function createHeroCard(session) {
            return new builder.HeroCard(session)
                .title('Months with Numbers Bar Chart')
                .subtitle('Using a Chart as Image service...')
                .text('Build and connect intelligent bots that have charts rendered as images.')
                .images([
                    builder.CardImage.create(session, 'http://chart.googleapis.com/chart?cht=bvg&chs=250x150&chd=s:Monkeys&chxt=x,y&chxl=0:|Jan|Feb|Mar|Apr|May|Jun|Jul')
                ])
                .buttons([
                    builder.CardAction.openUrl(session, 'https://docs.microsoft.com/bot-framework/', 'Get Started')
                ]);
        }

制作这张英雄卡:

【讨论】:

  • 非常感谢!有用。我唯一担心的是 google chart api 以后不能支持复杂的图表生成。但现在一切都很好。谢谢!!
  • 您好,打扰您了。刚刚意识到这个 google chart api 是一个已弃用的版本。我检查了新版本,但代码都嵌入在 html 文件中。是否可以在没有 html 的情况下实现新的 google api?
  • 我没有尝试过,但似乎您可以使用 getImageURI() 服务器端。并在卡片中渲染base64编码的图像。下面是 base64 内容的示例:github.com/Microsoft/BotBuilder-Samples/tree/master/Node/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-23
  • 1970-01-01
  • 2011-04-23
  • 2020-03-29
相关资源
最近更新 更多