Bot框架网聊引发了502 Bad Gateway

问题描述 投票:0回答:1

我试图通过微软提供的网络聊天html模板将其他频道数据传递到我的C#后端,我没有运气。

我已经阅读了很多关于这个的博客文章,但我不知道这些人是如何让它工作的,因为我总是在每个帖子上获得502 Bad Gateway。

我在HTML中的机器人应用程序初始化如下所示:

    // 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"));

这个例子基于我在下面尝试过的以下博客和github门票。

这是在DirectlineJS组件上引入的新bug,或者这从未起作用。任何帮助将不胜感激。

Sending channelData to webchat with each message

https://github.com/Microsoft/BotBuilder/issues/15

https://github.com/Microsoft/BotBuilder/issues/201

https://github.com/Microsoft/BotFramework-WebChat/issues/142

更新

HTML:

<!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>
botframework direct-line-botframework
1个回答
1
投票

我想我明白了。我在尝试测试时遇到了同样的问题,然后我在导航器开发者工具中查看了我的网络视图。

抛出502的请求包含以下内容,这有助于我理解:

Unauthorized

所以事实上这是一个在某个地方被取消授权的问题......所以通过快速谷歌搜索,我发现这篇文章:Unauthorized Bot Service from Web Chat

它就在那里:我没有在Azure的App Service中设置MicrosoftAppIdMicrosoftAppPassword。我编辑了它们(见另一个答案),没关系。

© www.soinside.com 2019 - 2024. All rights reserved.