我需要一种方法来发送数据到我的微软机器人框架的C#实现从一个角度的应用程序与集成的网络聊天窗口使用的直接线。
我们的特定用例意味着当用户在我的angular应用程序中打开网络聊天窗口时,我需要向团队中的用户发送消息列表。我目前在创建窗口时做了以下几件事:
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#后端的对象,而不会有意外的副作用。然后,此对象将用于重新创建用户使用不同机器人创建的聊天历史记录。
发布于 2020-07-07 23:13:14
我通过使用当用户加入聊天时发送的示例事件解决了这个问题。本质上,我复制了该代码,但创建了一个自定义事件来处理我想要传递的数据。如果你和我一样,在写这个问题的时候,看看如何使用事件和直接的iframe,已经有一些例子可以让你开始了。
https://stackoverflow.com/questions/62600233
复制相似问题