从Bot Emulator测试时,“无法发布活动。未经授权”

时间:2019-10-19 12:49:00

标签: botframework bots

在Bot Emulator中从Azure测试EchoBot模板时,我不断收到“无法发布活动。未经授权”。我该如何防范呢?我是.NET的新手,所以不了解身份验证在这里的工作方式。我可以看到正在加载的配置设置,但是看不到如何从Azure的默认EchoBot模板中提供或应用它们。

我发现只有在appsettings.json中定义了“ MicrosoftAppID”和“ MicrosoftAppPassword”时,我才会获得未授权。如果我将其注释掉,则效果很好。

    [HttpPost]
    public async Task PostAsync()
    {
        // Delegate the processing of the HTTP POST to the adapter.
        // The adapter will invoke the bot.
        await Adapter.ProcessAsync(Request, Response, Bot);
    }

因此,我想了解如何在本地测试代码时避免注释掉这些行。 PostAsync返回401。

2 个答案:

答案 0 :(得分:6)

转到您的 appSettings.json 文件,并检查是否提供了Microsoft App ID和App Password。在Azure上注册应用程序后,您将获得它。如果您尚未在Azure上注册,则不会获得ID和密码。在这种情况下,您必须将Microsoft App Id和Password json字符串保留为空白。像这样:

enter image description here

在Bot仿真器中,不要提供任何凭据。只需提供您的应用程序URL,然后单击连接

通过这种方式,您可以摆脱错误。

希望这会有所帮助。

答案 1 :(得分:0)

您是否尝试在仿真器内添加 Microsoft App ID Microsoft App Password

在模拟器中测试机器人后,添加它们后应该可以正常工作,请查看下面的图片

enter image description here