我是Bot Framework的新手,刚开始使用C#的Echo Bot示例。但是,最后,我想将我的漫游器集成到Teams频道,其中一个对话流程将需要整合来自多个API的信息并将其发送给用户。
我认为我们可以使用'ColumnSet'以how-to-display-data-in-table-format-in-microsoft-bot-framework
的表格格式显示数据现在我有了自适应卡JSON对象(表中的数据),我不确定在哪里以及如何将自适应卡组件准确地集成到echo bot脚本中。很少有示例显示存储自适应卡JSON并从路径读取并将其作为附件发送,但是我仍然不清楚。
下面是echo bot项目文件夹中的C#bot代码(Echobot.cs)。为实现自适应卡,A应该创建其他功能吗?
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);
}
}
}
}
}
答案 0 :(得分:2)
以下是有关如何向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.com/2019/07/02/using-adaptive-cards-with-the-microsoft-bot-framework/
只需搜索AdaptiveCard和Botframework,您就会从各种来源中找到更多信息。他们都很好。