我从here下载了QnAmaker示例,并尝试使其在机器人仿真器中运行。 我提供了正确的Microsoft应用程序ID和应用程序密码。我什至尝试使用新生成的密码。但是得到同样的错误。
有人遇到这个问题吗?有什么想法吗。接下来我该怎么做才能解决此问题?
更新
我从仿真器设置中删除了ngrok设置。删除了MsApp ID和Ms App Password,然后启动了仿真器,并且机器人正在响应。但是我需要天蓝色连接到QnaMaker并根据我的知识库获得响应。
更新2
我尝试通过azure门户的Web聊天进行尝试,但没有响应。 这是我在“应用程序见解”中发现的错误消息
无法获取客户端凭证的令牌。 (AADSTS700016: 找不到标识符为“ fXXXXXXXXXXXXXXXXXXXXX2”的应用 目录“ botframework.com”。如果应用程序发生这种情况 尚未由租户管理员安装或未得到同意 到租户中的任何用户。您可能已发送了身份验证 请求给错误的租户。跟踪ID: 9XXXXX-46a3-4XX-b8XXX7-c1XXXXX00
问题:
“如果租户管理员未安装该应用程序,或者该租户中的任何用户未同意该应用程序,则可能会发生。您可能已将身份验证请求发送给错误的租户”
如何确保我发送了纠正租户的请求?我在哪里可以验证? 或如何解决此问题?
答案 0 :(得分:0)
尝试从MicrosoftAppId
文件中删除MicrosoftAppPassword
和appsettings.json
的值,然后运行bot并尝试再次通过模拟器连接它。
当您连接到模拟器中的机器人时,appsettings.json
(始终)或.bot
文件(仅适用于开发端点)和MicrosoftAppId
和{{ 1}},则需要在连接屏幕上的提供的字段中输入这些详细信息,请参见下面的图片:
如果MicrosoftAppPassword
和appsettings.json
中MicrosoftAppId
中的值是空的,即MicrosoftAppPassword
,那么您将不必在连接屏幕上输入它们,并且机器人仍然会即使您的实时漫游器已设置这些设置,您在本地调试时也可以正常工作。唯一的例外是,当您使用ngrok通过本地代码调试生产渠道时,即使在本地未设置""
和MicrosoftAppId
,连接时也必须提供它们。>
答案 1 :(得分:0)
如果要在模拟器中查看响应,请从应用程序settings.json文件中删除应用程序ID和密码(对我有用),然后在应用程序设置文件中添加QnA kb键。而且,如果您想进行网络聊天测试,请使用QnA kb键在应用设置文件中添加应用ID和密码,然后发布。一旦您的漫游器发布,您就可以在网络聊天中进行测试,并将消息传递端点更改为发布的URL。 顺便说一句,如果您使用的是第4版botframework,则不需要ngrok。
答案 2 :(得分:0)
我想我可能知道是什么原因造成的-您从哪里获得应用程序ID和应用程序密码的?它们需要来自Azure门户中新创建的“启动”应用程序。例如,如果您没有正确的app + key组合,则可以通过模拟器与您的机器人进行愉快的通信,但是它无法连接到其他服务(例如QnAMaker,MS Teams)。
在Azure门户中,“ Web App Bot”模板将在Azure中创建Bot应用程序和网络托管应用程序,但是如果您使用的是现有示例应用程序,则还可以选择创建“ Bot Channels Registation”您已经下载并正在本地计算机上运行。
此“启动通道”选项基本上只是Azure中的一个占位符,该位置已完成该机器人在Azure中的所有密钥注册,但是您可以在任意位置托管该机器人本身(例如,在本地计算机上,在这种情况下,您需要提供ngrok地址作为端点,例如:https://250a1f39.ngrok.io/api/messages(确保在那里有“ / api / messages”)。
在Azure门户中的漫游器的“设置”屏幕上,您需要在其中捕获/更新终结点,它是“ Microsoft App ID”。还有一个指向“管理”的链接,应将您带到您可以获取密码的位置,但是该链接目前已断开(我认为MS正在对其进行修复),因此获取密码您还需要一些步骤: