2017-05-25 48 views
1

我正在使用Microsoft builder SDK for c#构建Chat bot。目前,我有工作位置对话框使用Microsoft.Bot.Builder.Location与Facebook,模拟器和Skype频道。 emulator_out与Cortana技能集成的Microsoft.Bot.Builder.Location:选择地址的问题

最近,我一直在尝试将bot与Cortana通道集成,但是Location对话框似乎不像其他通道一样工作。 一旦我选择“输入航运”,它会提示我输入地址。我说地址,它会更新页面并找到可能的位置(如轮播卡片),并在更新页面后立即提示我选择正确的地址。但是,我无法选择正确的选项,因为它已经更新了页面,我不能再查看可能的位置。 enter image description here 这是我的方式已经实现的位置对话框:

   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}, 
       }); 

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

+1

请将您的代码粘贴为文本,而不是屏幕截图。 –

+0

这是SDK中的限制/错误。你能否在github上打开一个问题? https://github.com/Microsoft/BotBuilder-Location/issues – blenddd

回答

0

这是否得到解决?我目前正在整合BotBuilder.Location库,并且在skype,脸谱等方面都做得很好,但是关于Cortana,在它提示“你对哪个位置感兴趣?”之后。没有输入方法(麦克风不打开,文本输入被禁用)。

+0

我建议在GitHub repo上打开一个bug:https://github.com/Microsoft/BotBuilder-Location/issues – rbrundritt

0

我也有这个对话框的问题。我所做的是下载对话框并完全重写它以满足我的需求(我还用谷歌替代了bing,因为我无法像在bing地图网站上那样使搜索工作)。

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

我有很多PromptDialog.Confirm无法正常工作的问题,所以我用context.MakeMessage替换了它,并将该卡作为附件附加。然后发布消息。 在信息中,您可以同时拥有卡片和文字/语音。然后等待回应。

唯一的问题是您必须解释响应。我还没有弄清楚如何自动做到这一点。