c# - 通过使用 Microsoft Bot Framework 将 Cortana 作为通道添加到我的机器人而出现错误
问题描述
Cortana 尝试对我的机器人进行身份验证时出错
我正在尝试使用带有 Azure Bot 服务的 MS Bot Framework 将 Cortana 连接到我的 QnA Bot。
在我说出调用短语时在 Windows 10 桌面上进行测试时 - Cortana 尝试对我进行身份验证,但出现以下错误。请让我知道我做错了什么?
解决方案
我最近实施了一项 Cortana 技能,但在进行身份验证时遇到了一些挑战。但是,我发现您的配置存在一些问题:
- User.Read.All需要管理员同意。这真的是您想要的还是您正在寻找User.ReadBasic.All。根据您的设置,这将阻止身份验证。有关详细信息,请参阅Microsoft Graph 文档。
- 在客户端授权方案下的 Cortana 通道配置中,确保您在请求正文中选择了凭据。我无法从您的屏幕截图中看到这一点,但我相信值得检查一下。
此外,以下是我的最佳实践,应该可以让您的方案发挥作用:
- 不要使用机器人的服务主体(应用程序注册)进行 Cortana 身份验证。
- 而是在您的租户上创建一个专用的应用程序注册(例如,使用品牌名称Your Bot for Cortana)并在您的 Cortana 通道配置(appId / 客户端密码)上配置这个
- 确保您不仅在机器人的 Cortana 通道配置上配置所需的范围,而且在您的应用注册上也配置所需的范围(转到 AAD - 应用注册(预览版)- API 权限)。请记住,Cortana 通道配置上的范围可以是应用注册上配置的范围的子集。这就是为什么我建议为您的机器人和 Cortana 进行专用应用程序注册的原因之一。
- 确保 Cortana 通道配置上的范围顺序是openid offline_access profile User.Read User.ReadBasic.All(出于某种原因,顺序很重要 - 至少在我的经验中)。
推荐阅读
- python - Python,正则表达式,替换包含单词的文本
- angular5 - 如何通过点击地图获取经纬度?
- java - 使用流 api 获取字符串
- c# - exe不能工作,直到我更改名称,为什么?
- swift - 如何从窗口控制器中引用视图?
- jquery - Skrollr JS 在 Windows 10 中的 Mozilla 浏览器 50.00 版本中出现 div 重叠的滚动问题
- javascript - 如何在 javascript 中保存 cookie,然后使用 php 在另一个页面中访问它
- python - 使用 curl 将轮子上传到私有 PyPi
- c - 检查 CPU 型号以执行特定的 C 代码
- css - 如何使 wordpress 宽敞主题全宽?