AdaptiveCards中的动态ChoiceSet:向Teams用户发布AdaptiveCard并等待响应”
创始人
2024-07-25 22:01:05
0

Adaptive Cards 是一种用于呈现有关数据的交互式卡片的开放式规范。在 Adaptive Cards 中,ChoiceSet 是一组预定义选项,用户可以从中选择一个或多个选项。有时,我们需要动态添加 ChoiceSet 中的选项并等待用户响应。

以下是向 Teams 用户发布 Adaptive Card 并等待响应的代码示例,其中包括动态 ChoiceSet:

const { TeamsActivityHandler, MessageFactory } = require('botbuilder');

class MyBot extends TeamsActivityHandler {
    async onMessageActivity(turnContext) {
        if (turnContext.activity.value) {
            // A response to the previous message was received
            console.log(turnContext.activity.value);

            // Generate a new card with updated options
            const updatedCard = {
                $schema: 'http://adaptivecards.io/schemas/adaptive-card.json',
                type: 'AdaptiveCard',
                version: '1.0',
                body: [
                    {
                        type: 'TextBlock',
                        text: 'Please select an option:',
                        wrap: true
                    },
                    {
                        type: 'Input.ChoiceSet',
                        id: 'myChoice',
                        style: 'compact',
                        spacing: 'none',
                        choices: [
                            { title: 'Option 1', value: '1' },
                            { title: 'Option 2', value: '2' },
                            { title: 'Option 3', value: '3' }
                        ]
                    }
                ],
                actions: [
                    {
                        type: 'Action.Submit',
                        title: 'Submit',
                        data: { type: 'myChoice' }
                    }
                ]
            };

            // Send the updated card to the user
            await turnContext.sendActivity(MessageFactory.attachment(CardFactory.adaptiveCard(updatedCard)));

        } else {
            // Send the initial card to the user
            const card = {
                $schema: 'http://adaptivecards.io/schemas/adaptive-card.json',
                type: 'AdaptiveCard',
                version: '1.0',
                body: [
                    {
                        type: 'TextBlock',
                        text: 'Please select an option:',
                        wrap: true
                    },
                    {
                        type: 'Input.ChoiceSet',
                        id: 'myChoice',
                        style: 'compact',
                        spacing: 'none',
                        choices: [
                            { title: 'Option 1', value: '1' }
                        ]
                    }
                ],
                actions: [
                    {
                        type: 'Action.Submit',
                        title: 'Submit',
                        data: { type: 'myChoice' }
                    }
                ]

相关内容

热门资讯

安装apache-beam==... 出现此错误可能是因为用户的Python版本太低,而apache-beam==2.34.0需要更高的P...
避免在粘贴双引号时向VS 20... 在粘贴双引号时向VS 2022添加反斜杠的问题通常是由于编辑器的自动转义功能引起的。为了避免这个问题...
Android Recycle... 要在Android RecyclerView中实现滑动卡片效果,可以按照以下步骤进行操作:首先,在项...
omi系统和安卓系统哪个好,揭... OMI系统和安卓系统哪个好?这个问题就像是在问“苹果和橘子哪个更甜”,每个人都有自己的答案。今天,我...
原生ios和安卓系统,原生对比... 亲爱的读者们,你是否曾好奇过,为什么你的iPhone和安卓手机在操作体验上有着天壤之别?今天,就让我...
Android - 无法确定任... 这个错误通常发生在Android项目中,表示编译Debug版本的Java代码时出现了依赖关系问题。下...
Android - NDK 预... 在Android NDK的构建过程中,LOCAL_SRC_FILES只能包含一个项目。如果需要在ND...
Akka生成Actor问题 在Akka框架中,可以使用ActorSystem对象生成Actor。但是,当我们在Actor类中尝试...
Agora-RTC-React... 出现这个错误原因是因为在 React 组件中使用,import AgoraRTC from “ago...
Alertmanager在pr... 首先,在Prometheus配置文件中,确保Alertmanager URL已正确配置。例如:ale...