在 angular 应用程序和 v4 Bot Framework Bot 之间发送聊天记录(C# + .Net Core Web 应用程序,Angular 8 前端)
Sending chat history between angular app and v4 Bot Framework Bot (C# + .Net Core Web Application, Angular 8 Frontend)
我需要一种方法来使用直线从 angular 具有集成网络聊天 window 的应用程序向我的 MSFT 机器人框架的 C# 实现发送数据。
我们的特定用例意味着当用户在我的 angular 应用程序中打开网络聊天 window 时,我需要向团队中的用户发送消息列表。我目前在创建 window 时执行以下操作:
window.WebChat.renderWebChat(
{
directLine,
userID: id + '',
username: 'user'
},
this.botWindowElement.nativeElement
);
directLine
.postActivity({
from: { id: id + '', name: 'webchat_user' },
name: 'requestWelcomeDialog',
type: 'event',
value: 'token'
})
.subscribe(
id => console.log(`Posted activity, assigned ID ${id}`),
error => console.log(`Error posting activity ${error}`)
);
然后当用户连接时我有这个方法来处理
protected override async Task OnTeamsMembersAddedAsync(IList<TeamsChannelAccount> membersAdded, TeamInfo teamInfo, ITurnContext<IConversationUpdateActivity> turnContext, CancellationToken cancellationToken)
{
foreach (TeamsChannelAccount member in membersAdded)
{
if (member.Id != turnContext.Activity.Recipient.Id)
{
await turnContext.SendActivityAsync(MessageFactory.Text($"Welcome {member.Name}!"), cancellationToken);
}
}
}
我正在寻找一种方法来获取我从 angular 应用程序发送到 C# 后端的对象,而不会产生意外的副作用。然后,此对象将用于重新创建用户使用其他机器人创建的聊天记录。
我使用用户加入聊天时发送的示例事件解决了这个问题。本质上,我复制了该代码,但创建了一个自定义事件来处理我想要传递的数据。
如果您在写这个问题时和我处在同一条船上,请研究使用直达 iframe 的事件,那里已经有示例可以帮助您入门。
我需要一种方法来使用直线从 angular 具有集成网络聊天 window 的应用程序向我的 MSFT 机器人框架的 C# 实现发送数据。
我们的特定用例意味着当用户在我的 angular 应用程序中打开网络聊天 window 时,我需要向团队中的用户发送消息列表。我目前在创建 window 时执行以下操作:
window.WebChat.renderWebChat(
{
directLine,
userID: id + '',
username: 'user'
},
this.botWindowElement.nativeElement
);
directLine
.postActivity({
from: { id: id + '', name: 'webchat_user' },
name: 'requestWelcomeDialog',
type: 'event',
value: 'token'
})
.subscribe(
id => console.log(`Posted activity, assigned ID ${id}`),
error => console.log(`Error posting activity ${error}`)
);
然后当用户连接时我有这个方法来处理
protected override async Task OnTeamsMembersAddedAsync(IList<TeamsChannelAccount> membersAdded, TeamInfo teamInfo, ITurnContext<IConversationUpdateActivity> turnContext, CancellationToken cancellationToken)
{
foreach (TeamsChannelAccount member in membersAdded)
{
if (member.Id != turnContext.Activity.Recipient.Id)
{
await turnContext.SendActivityAsync(MessageFactory.Text($"Welcome {member.Name}!"), cancellationToken);
}
}
}
我正在寻找一种方法来获取我从 angular 应用程序发送到 C# 后端的对象,而不会产生意外的副作用。然后,此对象将用于重新创建用户使用其他机器人创建的聊天记录。
我使用用户加入聊天时发送的示例事件解决了这个问题。本质上,我复制了该代码,但创建了一个自定义事件来处理我想要传递的数据。 如果您在写这个问题时和我处在同一条船上,请研究使用直达 iframe 的事件,那里已经有示例可以帮助您入门。