1

我正在使用 Microsoft builder SDK for c# 构建聊天机器人。目前,我有使用 Microsoft.Bot.Builder.Location 和 Facebook、模拟器和 Skype 频道的工作位置对话框。模拟器输出

最近,我一直在尝试将 bot 与 Cortana 频道集成,但位置对话框似乎在其他频道中效果不佳。一旦我选择“输入运费”,它就会提示我输入地址。我说地址,它会用找到的可能位置(如轮播卡片)更新页面,并在它更新页面后立即提示我从可能找到的位置中选择正确的地址。但是,我无法选择正确的选项,因为它已经更新了页面并且我无法再查看可能的位置。在此处输入图像描述 这是我实现位置对话框的方式:

                var locationDialog = this.dialogFactory.Create<LocationDialog>(
                new Dictionary<string, object>()
                {
                                { "prompt", string.Format(CultureInfo.CurrentCulture, Resources.RootDialog_Delivery_Address_Prompt, (await qtyResult).From.Name ?? "User") },
                                { "channelId", context.Activity.ChannelId },
                                { "apiKey", "apiKey"},
                            { "options",LocationOptions.SkipFinalConfirmation | LocationOptions.SkipFavorites},
                });

我想知道是否有不同的方法来获取 Cortana 频道的用户位置(送货地址)?谢谢!

4

2 回答 2

0

我也有这个对话框的问题。我所做的是下载对话框并完全修改它以满足我的需要(我也将 bing 替换为 google,因为我无法像在 bing 地图网站上那样进行搜索)。

问题之一是卡片和它后面的消息是两个不同的消息。Cortana 将为每个帖子更新画布,因此我将其合并为一个。

我在 PromptDialog.Confirm 无法正常工作时遇到了很多问题,因此我将其替换为 context.MakeMessage 并将卡片作为附件附加。然后发布消息。在消息中,您可以同时拥有卡片和文本/语音。然后等待回复。

唯一的问题是您必须解释响应。我还没有弄清楚如何自动执行此操作。

于 2017-07-24T12:42:49.360 回答
0

这有没有得到解决?我目前也在集成 BotBuilder.Location 库,并且在 Skype、Facebook 等方面一切都很好,但是关于 Cortana,在它提示“你对什么位置感兴趣?”之后 没有输入方法(麦克风没有打开并且文本输入被禁用)。

于 2017-06-22T12:15:14.283 回答