Botframework Bot框架webchat抛出502坏网关
我正试图通过微软提供的网络聊天html模板将额外的频道数据传递到我的C#后端,但我没有运气 我已经读了很多关于这方面的博客文章,但我不知道这些家伙是怎么做到的,因为我总是在每一篇文章中得到一个502坏网关 HTML中的我的机器人应用程序初始化如下所示:Botframework Bot框架webchat抛出502坏网关,botframework,direct-line-botframework,Botframework,Direct Line Botframework,我正试图通过微软提供的网络聊天html模板将额外的频道数据传递到我的C#后端,但我没有运气 我已经读了很多关于这方面的博客文章,但我不知道这些家伙是怎么做到的,因为我总是在每一篇文章中得到一个502坏网关 HTML中的我的机器人应用程序初始化如下所示: // removed my token for brevity var connection = new BotChat.DirectLine({ token: "{secret}", webSo
// removed my token for brevity
var connection = new BotChat.DirectLine({
token: "{secret}",
webSocket: true
});
function getBotConnectionDetail(botconnection) {
var botConnectionDetail = {};
var keys = Object.keys(botconnection);
for (var i = 0; i < keys.length; i++) {
botConnectionDetail[keys[i]] = botconnection[keys[i]];
};
botConnectionDetail['postActivity'] = function (activity) {
activity.channelData = {
Username: 'John Doe'
};
return botconnection.postActivity(activity);
};
return botConnectionDetail;
}
BotChat.App({
botConnection: getBotConnectionDetail(connection),
user: { id: "Yo" },
bot: { id: "Yo" },
resize: "window"
},
document.getElementById("bot"));
//为了简洁起见删除了我的令牌
var connection=new BotChat.DirectLine({
令牌:“{secret}”,
webSocket:对
});
函数getBotConnectionDetail(botconnection){
var botConnectionDetail={};
var keys=Object.keys(botconnection);
对于(变量i=0;i
这个示例大致基于下面我尝试过的博客和github票证
这可能是DirectlineJS组件上引入的新错误,也可能是根本不起作用。任何帮助都将不胜感激
更新
HTML:
机器人聊天
西扎
html,正文{
身高:100%;
保证金:0;
溢出:隐藏;
填充:0;
}
var connection=new BotChat.DirectLine({
秘密:“{secret}”,
webSocket:对
});
函数getBotConnectionDetail(botconnection){
var botConnectionDetail={};
var keys=Object.keys(botconnection);
对于(变量i=0;i
我想我明白了。我在尝试测试时遇到了同样的问题,然后在navigator Developer工具中打开网络视图时遇到了同样的问题
抛出502的请求包含以下内容,这有助于我理解:
所以事实上这是一个未经授权的问题。。。因此,通过快速谷歌搜索,我发现了以下帖子:
它就在那里:我在Azure的应用程序服务中没有设置
MicrosoftAppId
和MicrosoftAppPassword
。我编辑了它们(参见另一个答案),结果还可以。代码中的第一个奇怪的事情:令牌:“{secret}”
:您在这里提供令牌还是秘密?如果您要给出一个秘密,变量应该是secret
,而不是token
@NicolasR我是,抱歉,为了简洁起见,刚刚删除了我的令牌。当然,您必须删除它。但你提供的是“秘密”值还是“令牌”值?这是秘密,我通过Azure门户检索。。。但现在你让我猜到了我自己的想法…所以如果这是一个秘密,请将令牌:
更改为秘密:
。这两个选项都是可能的()
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>Bot Chat</title>
<title>Siza</title>
<link href="webview/webview.css" rel="stylesheet" />
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Open+Sans" />
<style>
html, body {
height: 100%;
margin: 0;
overflow: hidden;
padding: 0;
}
</style>
</head>
<body>
<div id="bot"></div>
<script src="webview/botchat.js"></script>
<script>
var connection = new BotChat.DirectLine({
secret: "{secret}",
webSocket: true
});
function getBotConnectionDetail(botconnection) {
var botConnectionDetail = {};
var keys = Object.keys(botconnection);
for (var i = 0; i < keys.length; i++) {
botConnectionDetail[keys[i]] = botconnection[keys[i]];
};
botConnectionDetail['postActivity'] = function (activity) {
activity.channelData = {
Username: 'John Doe'
};
return botconnection.postActivity(activity);
};
return botConnectionDetail;
}
BotChat.App({
botConnection: getBotConnectionDetail(connection),
user: { id: "Yo" },
bot: { id: "Yo" },
resize: "window"
},
document.getElementById("bot"));
</script>
</body>
</html>