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' }
                    }
                ]

相关内容

热门资讯

Android Recycle... 要在Android RecyclerView中实现滑动卡片效果,可以按照以下步骤进行操作:首先,在项...
安装apache-beam==... 出现此错误可能是因为用户的Python版本太低,而apache-beam==2.34.0需要更高的P...
Android - 无法确定任... 这个错误通常发生在Android项目中,表示编译Debug版本的Java代码时出现了依赖关系问题。下...
Android - NDK 预... 在Android NDK的构建过程中,LOCAL_SRC_FILES只能包含一个项目。如果需要在ND...
Alertmanager在pr... 首先,在Prometheus配置文件中,确保Alertmanager URL已正确配置。例如:ale...
Akka生成Actor问题 在Akka框架中,可以使用ActorSystem对象生成Actor。但是,当我们在Actor类中尝试...
Agora-RTC-React... 出现这个错误原因是因为在 React 组件中使用,import AgoraRTC from “ago...
Aksnginxdomainb... 在AKS集群中,可以使用Nginx代理服务器实现根据域名进行路由。以下是具体步骤:部署Nginx i...
AddSingleton在.N... 在C#中创建Singleton对象通常是通过私有构造函数和静态属性来实现,例如:public cla...
apache子目录二级域名 Apache是一款流行的Web服务器软件,它允许用户使用子目录作为二级域名。使用Apache作为服务...