我用botbuilder-js编写了一个自定义机器人。在某个时候,它需要用户登录,因此该漫游器会发出OAuthPrompt
对话框,该对话框使用户登录(使用我在Azure Portal OAuth连接设置中配置的google)。在Bot Framework Emulator中它可以正常工作,但是当我将bot与Cortana集成时,在用户登录后,他登陆了此页面:
有趣的是,此对话框是模态对话框,因此即使我愿意,也无法将代码粘贴到Cortana聊天中。
我该怎么做才能迫使Cortana不需要此魔术代码?
答案 0 :(得分:0)
已经在GitHub botbuilder-js repo上对此进行了回答。回答以提高知名度。
这确实是一个错误。我能够解决这个问题。如果您将代码复制下来,则可以将代码作为新命令输入到机器人。这是一个很糟糕的解决方法,但是要等到UI修复后才能起作用。请按照下列步骤操作:
答案 1 :(得分:0)
按照Google上的说明,我发现重定向URL是提示您输入魔术代码的原因。如果您使用Google工具,并设置了带外身份验证,则将获得如下所示的OAuth授权URL:
Authorize this app by visiting this url:
https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.metadata.readonly&response_type=code&client_id=[my client id]&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob
Enter the code from that page here: [your code]
您不应该设置带外身份验证(又名复制/粘贴身份验证urn:ietf:wg:oauth:2.0:oob
)-因为这意味着流完成时(身份验证机器人)身份管理器不会调用redirect_url(或redirect_uri)服务或cortana知道您已完成登录),更重要的是,您可能不希望用户粘贴一些代码来获取访问令牌。如果您遵循https://developers.google.com/identity/protocols/OAuth2InstalledApp,您会看到重定向uri应该是机器人框架或cortanas,而不是带外。这样做,请求者应以编程方式获取代码。您可以在Google应用程序注册表中单击凭据刀片配置它。