QnAmaker示例-机器人的Microsoft App ID或Microsoft App Password不正确

时间:2019-06-03 22:18:34

标签: c# .net botframework core

我从here下载了QnAmaker示例,并尝试使其在机器人仿真器中运行。 我提供了正确的Microsoft应用程序ID和应用程序密码。我什至尝试使用新生成的密码。但是得到同样的错误。

有人遇到这个问题吗?有什么想法吗。接下来我该怎么做才能解决此问题?

我的应用设置 enter image description here

我的ngrok设置 enter image description here

enter image description here

更新

我从仿真器设置中删除了ngrok设置。删除了MsApp ID和Ms App Password,然后启动了仿真器,并且机器人正在响应。但是我需要天蓝色连接到QnaMaker并根据我的知识库获得响应。

enter image description here

更新2

我尝试通过azure门户的Web聊天进行尝试,但没有响应。 这是我在“应用程序见解”中发现的错误消息

  

无法获取客户端凭证的令牌。 (AADSTS700016:   找不到标识符为“ fXXXXXXXXXXXXXXXXXXXXX2”的应用   目录“ botframework.com”。如果应用程序发生这种情况   尚未由租户管理员安装或未得到同意   到租户中的任何用户。您可能已发送了身份验证   请求给错误的租户。跟踪ID:   9XXXXX-46a3-4XX-b8XXX7-c1XXXXX00

问题:

“如果租户管理员未安装该应用程序,或者该租户中的任何用户未同意该应用程序,则可能会发生。您可能已将身份验证请求发送给错误的租户”

如何确保我发送了纠正租户的请求?我在哪里可以验证? 或如何解决此问题?

3 个答案:

答案 0 :(得分:0)

尝试从MicrosoftAppId文件中删除MicrosoftAppPasswordappsettings.json的值,然后运行bot并尝试再次通过模拟器连接它。

当您连接到模拟器中的机器人时,appsettings.json(始终)或.bot文件(仅适用于开发端点)和MicrosoftAppId和{{ 1}},则需要在连接屏幕上的提供的字段中输入这些详细信息,请参见下面的图片:

enter image description here

如果MicrosoftAppPasswordappsettings.jsonMicrosoftAppId中的值是空的,即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正在对其进行修复),因此获取密码您还需要一些步骤:

  1. 转到Azure主页主页/主要资源列表(Azure左上方的小菜单图标)
  2. 转到Azure Active Directory(是的,即使在您自己的个人Azure订阅中,您也可以执行此操作-幕后仍然设置了Azure AD)
  3. 转到左侧菜单上的“应用程序注册”
  4. 转到页面顶部附近的“来自个人帐户的应用程序”(位于主菜单上,而不是向下)
  5. 在那里您会找到新的机器人-将其打开
  6. 转到“证书和秘密”
  7. 单击按钮创建“新客户密码”
  8. 选择一个到期选项并有选择地提供描述。
  9. 点击添加,添加后-这就是您需要的应​​用密码