如何将Microsoft Health bot集成到Web应用程序

时间:2019-02-26 17:03:34

标签: botframework

我在Health bot Designer中创建了几种方案。我正在尝试与前端集成。但是,我看不到有关集成过程的任何完整文档。我已经介绍了https://github.com/Microsoft/HealthBot-WebChat,没有任何运气。我如何获得healthbot的直接链接。我已经尝试过使用网络bot并能够生成直线,但不确定如何将网络bot通道链接到运行状况bot方案。有帮助吗?

3 个答案:

答案 0 :(得分:0)

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

enter image description here

一旦有了秘密,就可以从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来生成和管理令牌。

希望这会有所帮助!

答案 1 :(得分:0)

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

答案 2 :(得分:0)

有一种直接方法可以从前端触发场景。如果要完全依靠自己的响应,则必须关闭内置方案,并在事件发布javascript代码中调用方案名称。查看下面的“触发”元素:             botConnection                 .postActivity({                     类型:“事件”,                     值:{                       触发:“您的场景名称_此处”,参数:{}                     },                     来自:your_user_name,                     名称:“ BeginDebugScenario”                 });