跳转到主要内容

热门内容

今日:


总体:


最近浏览:


Chinese, Simplified

category

从2023年9月1日开始,强烈建议使用Azure服务标签方法进行网络隔离。DL-ASE的使用应仅限于高度特定的场景。在生产环境中实施此解决方案之前,我们建议您咨询您的支持团队以获取指导。

适用于:SDK v4

本文介绍了如何使用带有Direct Line App Service扩展的Web Chat。需要4.9.1或更高版本的网络聊天才能获得本机Direct Line App Service扩展支持。

集成网络聊天客户端


注:

通过Direct Line App Service扩展发送的自适应卡不会经历与通过其他版本的Direct Line渠道发送的自适应卡相同的处理。因此,如果创建卡时机器人省略了字段,则从Direct Line App Service扩展发送到Web Chat的自适应卡的JSON表示将不会由通道添加默认值。

一般来说,方法和以前一样。除了在4.9.1或更高版本的Web Chat中内置了建立双向WebSocket的支持之外。这允许网络聊天直接连接到您的机器人托管的Direct Line App Service扩展,而不是连接到https://directline.botframework.com/.您的机器人的直线URL将是https://<your_app_ser…,即您的应用服务扩展上的直线端点。如果您配置了自己的域名,或者您的机器人托管在主权Azure云中,请替换为相应的URL并附加/.bot/路径以访问Direct Line App Service扩展的REST API。

  • 按照身份验证文章中的说明将密钥交换为令牌。而不是在以下位置获得代币https://directline.botframework.com/v3/directline/tokens/generate,您将直接从您的Direct Line App Service扩展中生成令牌,网址为https://<your_App_Service>.accesswebsites.net/.bot/v3/directline/tokens/generate。
  • 有关如何获取令牌的示例,请参阅Web聊天示例【Web Chat Samples.】

HTML

<!DOCTYPE html>
<html lang="en-US">
 <head>
   <title>Web Chat</title>
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
   <script
     crossorigin="anonymous"
     src="https://cdn.botframework.com/botframework-webchat/latest/webchat.js"
   ></script>
   <style>
     html,
     body {
       background-color: #f7f7f7;
       height: 100%;
     }
     body {
       margin: 0;
     }
     #webchat {
       box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
       height: 100%;
       margin: auto;
       max-width: 480px;
       min-width: 360px;
     }
   </style>
 </head>
 <body>
   <div id="webchat" role="main"></div>
   <script>
     (async function() {
       <!-- NOTE: You should replace the below fetch with a call to your own token 
       service as described in step 2 above, to avoid exposing your channel 
       secret in client side code. -->
       const res = await fetch('https://<your_app_service>.azurewebsites.net/.bot/v3/directline/tokens/generate', 
         {
           "method": "POST",
           "headers": {
             "Authorization": "Bearer " + "<Your Bot's Direct Line channel secret>"
           },
           "body": "{'user': {'id': 'my_test_id', 'name': 'my_test_name'}}"
         }
       );
       const { token } = await res.json();
       window.WebChat.renderWebChat(
         {
           directLine: await window.WebChat.createDirectLineAppServiceExtension({
             domain: 'https://<your_app_service>.azurewebsites.net/.bot/v3/directline',
             token
           })
         },
         document.getElementById('webchat')
       );
       document.querySelector('#webchat > *').focus();
     })().catch(err => console.error(err));
   </script>
 </body>
</html>


小贴士

在JavaScript bot实现中,确保在web.config文件中启用了WebSockets,如下所示。

XML

<configuration>
   <system.webServer>
       <webSocket enabled="true"/>
       ...
   </system.webServer>
</configuration>
本文地址
最后修改
星期三, 八月 7, 2024 - 21:59
Article