无法将基于 botkit 的机器人连接到 BotFramework 的网络聊天(401 错误)

unable to connect botkit-based bot to BotFramework's webchat (401 errors)

在将我本地托管的(基于 botkit 的)机器人成功连接到 Microsoft 的 Bot Framework Emulator(使用本地主机地址作为消息传递端点)后,我现在正在尝试将它连接到框架的网络聊天(使用 ngrok 的主机名)对于我的本地机器人)。但是,当网络聊天尝试连接时,我收到 'unauthorized'。关于我的机器人的更多信息:

这是我到目前为止尝试过的方法:

在所有这些情况下,我的机器人自己的日志都显示相同的内容: “在转弯处理程序中遇到错误 Error: BotFrameworkAdapter.processActivity(): 401 ERROR 错误:未经授权。令牌上传递的 AppId 无效:blah"。

最后一个案例的浏览器控制台显示与网站嵌入不同的结果如下:

所以这是我的直接问题:

除了上述问题,您对我的环境中可能 wrong/missing 有什么其他建议吗? 顺便说一句,到目前为止,我相信我已经阅读了所有在使用网络聊天时提到 'unauthorized' 错误的类似 post,其中 none 到目前为止已经有所帮助,包括第一个中引用的那些下面提供的评论。作为记录,这里是我也读过的 posts(评论中未提及):

• 我建议您查看下面的 Github 社区论坛,了解有关转弯处理程序和“BotFrameworkAdapter.processActivity():401 错误”的问题的详细信息,他们在其中声明他们试图通过本地机器人通过两种类型进行连接:-

  1. 通过输入URL、appID/password
  2. 到 select 由欢迎部分“我的机器人”表单中的机器人文件定义的机器人。

以上两种连接,第一种总是失败,第二种总是成功。因此,根据他们的说法,他们建议下载最新版本的模拟器。

https://github.com/microsoft/BotFramework-Emulator/issues/1417

希望对您有所帮助,敬请参考。就“网络聊天测试”功能而言,它确实需要一个 Azure 托管机器人,因为在本地设备上运行的 Bot Framework Emulator 在其运行时配置中嵌入了 Azure Bot 服务端点 link执行模拟器,我们必须输入要连接的 Azure Bot 服务的 AppID 和密码。

https://docs.microsoft.com/en-us/composer/test/test-bots-in-web-chat

在花了很多时间调试这个问题后,结果证明这是 botkit 控制器创建代码中的一个简单拼写错误。它没有使用 'adapterConfig' 将机器人的适配器设置为 built-in 机器人框架适配器,而是使用 'adapter_config'。这破坏了与 bot 框架的集成,因为没有传递任何应用程序 ID 或密码。感谢 Microsoft 支持提供故障排除帮助。