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>
- 登录 发表评论
- 6 次浏览
发布日期
星期三, 八月 7, 2024 - 21:52
最后修改
星期三, 八月 7, 2024 - 21:59
Article
最新内容
- 3 days 4 hours ago
- 3 days 6 hours ago
- 3 days 6 hours ago
- 5 days 22 hours ago
- 6 days 5 hours ago
- 6 days 6 hours ago
- 6 days 6 hours ago
- 6 days 6 hours ago
- 1 week 3 days ago
- 1 week 3 days ago