【问题标题】:How do I integrate Microsoft health bot to web application如何将 Microsoft 健康机器人集成到 Web 应用程序
【发布时间】:2019-03-06 01:30:58
【问题描述】:

我在健康机器人设计器中创建了几个场景。我正在尝试与我的前端集成。但是,我没有看到任何关于集成过程的完整文档。我已经推荐了https://github.com/Microsoft/HealthBot-WebChat 没有任何运气。我如何获得 healthbot 的直接链接。我尝试过使用网络机器人并能够生成直线,但不确定如何将网络机器人频道链接到健康机器人场景。有什么帮助吗?

【问题讨论】:

    标签: botframework


    【解决方案1】:

    您可以使用 WebChat 将医疗保健机器人服务集成到 Web 应用程序中。首先,您需要从 Healthcare Bot Service Manager 获取您的 WebChat Secret。在左侧窗格中,单击集成边栏选项卡,在下拉选项中选择机密,然后复制 webchat_secret

    获得密钥后,您可以从 DirectLine 请求令牌并在您的 Web 应用程序上呈现 WebChat 组件。看看下面的例子。

    <!DOCTYPE html>
    <html lang="en-US">
      <head>
        <title>Healthcare bot</title>
        <script src="https://cdn.botframework.com/botframework-webchat/master/webchat.js"></script>
        <style>
          html, body { height: 100% }
          body { margin: 0 }
    
          #webchat,
          #webchat > * {
            height: 100%;
            width: 100%;
          }
        </style>
      </head>
      <body>
        <div id="webchat" role="main"></div>
    
        <script>
    
          (async function() {
    
            // Note, for the simplicity of this example, we are fetching the DirectLine token here;
            // however, it is recommended that you create a backend REST API to generate and manage 
            // your tokens.
            const res = await fetch('https://directline.botframework.com/v3/directline/tokens/generate', 
            { 
              method: 'POST',
              headers: {
                'Authorization': `Bearer <WEBCHAT_SECRET>`,
                'Content-Type': 'application/json'
              },
              body: {
                  // The user id must start with `dl` and should be unique for each user.
                  User: { Id: 'dl_user_id' }
              }
            });
            const { token } = await res.json();
    
            window.WebChat.renderWebChat({
            directLine: window.WebChat.createDirectLine({ token }),
          }, document.getElementById('webchat'));
    
          })().catch(err => console.log(err));
    
        </script>
      </body>
    

    注意,为简单起见,我们在此处获取 DirectLine 令牌;但是,建议您创建一个后端 REST API 来生成和管理您的令牌。

    希望这会有所帮助!

    【讨论】:

    • 谢谢。这很有帮助,我可以调出聊天。但是,我相信,机器人响应来自内置场景,而不是来自我开发的场景。我有一个简单的场景,当用户说什么时会向用户打招呼。所以现在的问题是我如何触发我的场景而不是内置的机器人响应?有没有办法配置从前端调用哪个场景?
    • 可能有一种方法可以从前端触发您的对话,但我必须看看它。否则,必须在管理门户中进行配置,但我认为它们不会让您访问对话流。但是,您可以在门户中为用户自定义欢迎消息。
    【解决方案2】:

    找到了一种方法。我们需要添加一个模型并通过 Health Bot Management Portal 启用触发器

    【讨论】:

      【解决方案3】:

      有一种直接的方法可以从前端触发场景。如果您想完全依赖自己的响应,那么您必须关闭内置场景并在事件发布 javascript 代码中调用场景名称。查看下面的“触发器”元素: 机器人连接 .postActivity({ 类型:“事件”, 价值: { 触发器:“your_scenario_name_here”,参数:{} }, 来自:您的用户名, 名称:“开始调试场景” });

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-11
        • 2022-09-29
        • 1970-01-01
        相关资源
        最近更新 更多