【问题标题】:Sending chat history between angular app and v4 Bot Framework Bot (C# + .Net Core Web Application, Angular 8 Frontend)在 Angular 应用程序和 v4 Bot Framework Bot(C# + .Net Core Web 应用程序,Angular 8 前端)之间发送聊天记录
【发布时间】:2020-07-07 23:13:13
【问题描述】:

我需要一种方法,通过使用直线的集成网络聊天窗口,将数据从 Angular 应用程序发送到我的 MSFT 机器人框架的 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# 后端的对象,而不会产生意外的副作用。然后,此对象将用于重新创建用户使用不同机器人创建的聊天历史记录。

【问题讨论】:

  • 欢迎来到 Stack Overflow。你的问题是什么?请查看方便的指南,了解您可以采取哪些步骤来更快地获得更好的答案:stackoverflow.com/help/how-to-ask

标签: c# angular botframework


【解决方案1】:

我通过使用用户加入聊天时发送的示例事件解决了这个问题。本质上,我复制了该代码,但创建了一个自定义事件来处理我想要传递的数据。 如果你和我在写这个问题时的情况一样,看看使用直接 iframe 的事件,已经有一些例子可以让你开始。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-23
    • 2017-05-09
    • 2017-08-15
    • 2018-09-15
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多