You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Teams中发送O365连接器卡片轮播?Node.js可实现吗?

关于用Node.js在Teams中发送O365连接器卡片轮播的可行性

嘿,这个问题问得很实际!首先得给你明确一个关键点:O365连接器卡片本身并不支持轮播(carousel)布局——这种卡片的设计初衷就是单张使用的,没有内置的轮播容器或组合能力,所以你没法直接把多张O365连接器卡做成左右滑动的轮播效果。

不过别担心,我们有完美的替代方案:Teams原生支持自适应卡片(Adaptive Cards)的轮播布局,而且完全可以实现你代码里想要的「带多行输入框+提交操作」的功能,用Node.js就能轻松搞定。

先看看你当前代码的思路:你在循环创建带ActionCard的O365连接器卡,但这种方式没法组合成轮播。我们换成自适应卡片来实现类似逻辑,给你一个可运行的示例:

const { BotFrameworkAdapter, AttachmentLayoutTypes, TurnContext } = require('botbuilder');

// 封装生成单张自适应卡片的函数
function buildAdaptiveCard(cardIndex) {
    return {
        type: 'AdaptiveCard',
        version: '1.4',
        body: [
            {
                type: 'TextBlock',
                text: `选项卡片 ${cardIndex}`,
                size: 'Large',
                weight: 'Bolder'
            },
            {
                type: 'Input.Text',
                id: `comment-input-${cardIndex}`,
                placeholder: 'write your comment here....',
                isMultiline: true,
                height: 'stretch'
            }
        ],
        actions: [
            {
                type: 'Action.Submit',
                title: '提交评论',
                data: {
                    action: 'submit-comment',
                    targetCard: cardIndex
                }
            }
        ]
    };
}

// 发送轮播卡片的核心逻辑
async function sendCardCarousel(turnContext) {
    const cardAttachments = [];
    // 生成3张卡片
    for (let i = 1; i < 4; i++) {
        const adaptiveCard = buildAdaptiveCard(i);
        // 转为Teams可识别的附件格式
        cardAttachments.push({
            contentType: 'application/vnd.microsoft.card.adaptive',
            content: adaptiveCard
        });
    }

    // 以轮播布局发送卡片
    await turnContext.sendActivity({
        attachments: cardAttachments,
        attachmentLayout: AttachmentLayoutTypes.Carousel
    });
}

// 在你的Bot对话流程中调用这个函数即可
// 比如在某个意图触发时:sendCardCarousel(context);

几点补充说明:

  • 自适应卡片的Action.Submit可以替代你原来的O365ConnectorCardHttpPOST,提交的数据会直接发送到你的Bot后端,你可以在Bot的消息处理逻辑中获取输入框的值和卡片标识。
  • 如果你的业务逻辑必须依赖O365连接器卡的某些特性(比如直接调用外部API的HttpPOST),那只能退而求其次:分开发送多张O365连接器卡,或者把多个选项合并到单张卡片里,但没法实现轮播的滑动效果。
  • 确保你已经安装了必要的依赖包:npm install botbuilder adaptivecards

内容的提问来源于stack exchange,提问作者chandra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 02:32:49