【问题标题】:bot framework v 4.5 how to add extra meta data to choice promptbot framework v 4.5 如何在选择提示中添加额外的元数据
【发布时间】:2020-05-23 02:37:25
【问题描述】:

我想列出几个可供用户点击的选项,我想按名称列出,但我想收到点击选项的 ID。

对于这种情况,我认为我可以使用 ChoicePropmt 但由于某种原因它不适用于我的情况。

代码:

       const projects = [
            {
                value: 'project1',
                data:'214'
            },
            {
                value: 'project2',
                data:'213'
            }
        ];
        return await stepContext.prompt(CHOICE_PROMPT, { prompt: 'Select Project', choices: projects});

在瀑布的下一步中,我尝试收集数据并记录为console.log(stepContext.result); 仅显示 value 属性和其他一些属性,如同义词、索引等,但不显示数据。

我无法在瀑布的下一步中接收数据属性,我也尝试了自适应卡,但仍然无法使其工作!知道如何解决这个问题吗?

【问题讨论】:

  • 欢迎来到 Stack Overflow。你能告诉我们你尝试使用自适应卡片的样子吗?
  • 你还在做这个吗?
  • 现在我在 value 属性的字符串中包含项目的 ID,例如:项目名称 (12345),而不是使用正则表达式提取 ID。使用自适应卡片不起作用,对于这种情况,它似乎并不复杂!
  • 你用的是什么渠道?

标签: javascript botframework chatbot azure-bot-service


【解决方案1】:

继续查看文档。您可以看到choices 属性采用字符串数组或Choice 对象。您不能只提供您想要的任何类型的对象并期望 SDK 知道如何处理它,而 Choice 没有 data 属性。

您想要的是在选择提示中显示包含隐藏元数据的操作的卡片。默认情况下,它将构造一个带有imBack 操作的卡片,该操作不能包含隐藏的元数据。您可以自己使用卡片进行整个活动,然后将其用作prompt 属性,而不仅仅是一个字符串(在这种情况下,您可能希望使用ListStyle.none)。但您可能还想尝试使用您选择的action 属性,以便可以使用postBackmessageBack 而不是imBack

请注意,并非所有频道都支持将隐藏的元数据放入操作中。如果您使用的频道不支持,那么您将无法执行此操作。

【讨论】:

  • 感谢您的回答,机器人需要在每个频道中以相同的方式工作,因此元数据隐藏看起来并不安全!
  • 您使用什么渠道?您的全部问题不是关于“元数据隐藏”吗?如果您不尝试将“数据”值放入操作中,您可以编辑您的问题以解释您实际尝试做的事情吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多