我是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);
}
}
}
}
}
这里有一个例子,如何发送一张卡片到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,你就会从各种来源找到更多的东西。它们都很不错。