我创建了一个bot应用程序,我已成功通过模拟器在本地进行测试。
关注https://docs.botframework.com/en-us/csharp/builder/sdkreference/gettingstarted.html我将Bot应用程序发布到Azure。 (创建为http://mybotappname.azurewebsites.net)
然后我转到https://dev.botframework.com的Microsoft Bot Framework门户并注册了bot,并确保将消息传递端点设置为
http s ://mybotappname.azurewebsites.net / api / messages
成功注册后,我更新了MicrosoftAppId& web.config中的MicrosoftAppPassword键。
然而,当我尝试“测试与你的机器人的连接”时,我所看到的只是一条消息说
“未授权”
如何调试来自哪里?
我尝试运行Bot Framework Channel Emulator,将Bot Url设置为我的Bot为Messaging端点设置的URL。这给了我一个“401 Unauthorized”消息,但我无法弄清楚如何/在哪里调试原因。
有没有人经历过这个或知道我可以做些什么来调试?
由于
答案 0 :(得分:3)
想出来:
在web.config中,默认的appSetting键是
<add key="AppId" value="ID" />
<add key="AppSecret" value="SECRET" />
在文档中,我们设置:
<add key="MicrosoftAppId" value = "ID" />
<add key="MicrosoftAppPassword" value = "SECRET" />
我的问题是没有将这些appSetting键更新为MicrosoftAppId和MicrosoftAppPassword。一旦我这样做了,它就有用了。
答案 1 :(得分:2)
入门指南对此有点误导。在第5步中,它会告诉您:
Bot Framework注册页面中的AppId和AppPassword必须记录在项目的web.config
中稍后在模拟器部分中,它明确告诉您在本地运行时不要将appid或密码放入模拟器工具中的框中。此部分不正确,如果您的web.config文件中包含值,则必须将相同的值放入模拟器中。您可以在模拟器中将值保留为空,但是您还需要从web.config文件中删除它们。
此页面非常有助于解决身份验证问题: https://docs.botframework.com/en-us/support/troubleshooting-bot-framework-authentication/
答案 2 :(得分:0)
在尝试访问Azure中部署的漫游器时,我还遇到此错误“错误:未经授权。无效的AppId通过令牌传递”。解决方案是转到Bot注册>访问控制>我将自己添加为该机器人的所有者。它开始在模拟器中为我工作。我给了http:// localhost:port,但没有在仿真器中提供MicrosoftAppId和MicrosoftAppPassword,因此我可以在本地调试机器人。