在机器人脚本中添加自适应卡JSON--C#。

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

我是Bot Framework的新手,刚开始使用C#来使用Echo Bot的例子,但是,最后,我想把我的机器人集成到Teams频道,其中一个对话流需要整合来自多个API的信息并发送给用户。

我想,我们可以使用 "ColumnSet "来显示来自于 如何在微软机器人框架中以表格格式显示数据?

现在我已经有了自适应卡JSON对象(表格中的数据),我不知道到底在哪里以及如何将这个自适应卡组件集成到echo bot脚本中。有几个例子显示了存储自适应卡JSON和从路径读取并作为附件发送,但我还是不清楚。

下面是echo bot项目文件夹中的C#机器人代码(Echobot.cs)。是否应该创建一个不同的函数来实现自适应卡?

using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Bot.Builder;
using Microsoft.Bot.Schema;

namespace Microsoft.BotBuilderSamples.Bots
{
    public class EchoBot : ActivityHandler
    {
        protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
        {
            var replyText = $"Echo: {turnContext.Activity.Text}";
            await turnContext.SendActivityAsync(MessageFactory.Text(replyText, replyText), cancellationToken);
        }

        protected override async Task OnMembersAddedAsync(IList<ChannelAccount> membersAdded, ITurnContext<IConversationUpdateActivity> turnContext, CancellationToken cancellationToken)
        {
            var welcomeText = "Hello and welcome!";
            foreach (var member in membersAdded)
            {
                if (member.Id != turnContext.Activity.Recipient.Id)
                {
                    await turnContext.SendActivityAsync(MessageFactory.Text(welcomeText, welcomeText), cancellationToken);
                }
            }
        }
    }
}
c# azure botframework luis adaptive-cards
1个回答
1
投票

这里有一个例子,如何发送一张卡片到MS Teams。

                var newActivity = new Activity
            {
                Text = string.Empty,
                Summary = GetActivityText(data,eventData,step),
                Type = ActivityTypes.Message,
                Attachments = new List<Attachment>
                {
                    new Attachment
                    {
                        ContentType = "application/vnd.microsoft.card.adaptive",
                        Content = card
                    },
                },
                Conversation = new ConversationAccount
                {
                    Id = conversationid,
                }
            };
           await turnContext.SendActivityAsync(activity, cancellationToken);

然而,有各种方法来做到这一点。这取决于一点事件。例如,MessageExtensions需要一个稍微不同的方法。

一般来说,你创建一个新的活动,将卡片作为附件添加到活动中,然后直接发送。

正如MickyD在评论中指出的,所有这些在文档中都有解释。这里有一些关于这方面的信息。https:/blog.botframework.com20190702using-adaptive-cards-with-the-microsoft-bot-framework.

只要搜索AdaptiveCards和Botframework,你就会从各种来源找到更多的东西。它们都很不错。

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