调用时的 Cortana Skill 身份验证不起作用

Cortana Skill authentication on invocation not working

我有一个完全可用的 Cortana 技能,我尝试按照以下 link:

来包括 Oauth 身份验证

Configure authentication for Microsoft's identity server

但它不起作用,它只是不显示任何内容并允许用户在没有身份验证的情况下使用该技能。除了上面link中的配置,在bot服务中有没有需要实现的代码?非常感谢您的帮助。

谢谢!

更新 1

这就是我设置 Cortana Oauth 详细信息的方式,现在使用 Microsoft 文章中的示例:

据我所知,为了显示登录请求,不应该在代码中做任何其他事情,只有一段代码来检索授权令牌,但什么也没有显示,技能开始 运行 马上。

我已经尝试使用 GetTokenDialog 和 SendOAuthCardAsync 进行身份验证并且它有效,但是当我收到确认代码以完成身份验证时,如果我对 Cortana 说,"she" 无法识别代码,如果我改为键入它,它可以工作,但 Cortana 停止说话。

我也关注了这个视频,这正是我所做的:

Build 2017 Authentication in Cortana Skills

我需要更新 botBuilder SDK 什么的吗?我在 3.15.2.2。我只是从来没有得到登录提示。谢谢!

解决方案

原来是微软的bug;由于一切正常,我决定删除 Cortana 频道并从头开始重新创建它,现在登录提示出现了,谢谢!

bot oauth 和 cortana oauth 的工作方式略有不同。

首先,确保您已通过 Azure 门户或 botframework 在 Cortana 通道配置上打开 "Cortana should manage my user's identity"。然后填写所有字段(我们正在更新网站文档,因为它不正确)。不要 select "Sign in when required" 除非您在调用资源之前发送 OAuth 卡。

然后当您调用您的技能时,应该会显示 OAuth 对话框。如果不是,请不要忘记,如果您成功登录一次,Cortana 将缓存您的身份验证令牌。您可以通过Cortana笔记本断开技能来清除令牌。

我在 node 和 c# 中有示例。 https://github.com/bw-kforce-ms/CortanaSkillsWIP/tree/master/Consumer/Node/OAuth2Example