机器人框架v4.5如何给选择提示添加额外的元数据?

问题描述 投票:1回答:1

我想列出一些选项让用户点击,我想按名称列出,但我想收到点击选项的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); 只显示值属性和其他一些属性,如同义词、索引等,但不显示数据。

我无法在瀑布的下一步接收数据属性,我也试过自适应卡,但仍然无法使其工作!有什么办法可以解决这个问题吗?任何想法如何解决这个问题?

javascript botframework chatbot azure-bot-service
1个回答
0
投票

继续看一下文档。你可以看到 choices 属性接收一个字符串数组或 Choice 对象。你不能只提供你想要的任何类型的对象,并期望SDK知道如何处理它,而且 Choice 没有 data 属性,你想要的是让选择提示显示一个包含隐藏元数据的动作的卡片。

你想要的是让选择提示显示一个包含隐藏元数据的动作的卡片。默认情况下,它将构建一个包含 imBack 动作,不能包含隐藏的元数据。你可以自己用卡片制作整个活动,然后用它作为 prompt 属性,而不只是一个字符串(你会想使用 ListStyle.none 在这种情况下)。) 但你也可以尝试使用 action 属性的选择,这样你就可以使用 postBackmessageBack 而不是 imBack.

请注意,并不是所有的通道都支持将隐藏的元数据放在动作中。如果你使用的频道不支持,那么你就没有办法做到这一点。

© www.soinside.com 2019 - 2024. All rights reserved.