【问题标题】:Azure Bot Framework: Handle user sending multiple consecutive messagesAzure Bot Framework:处理用户发送多条连续消息
【发布时间】:2018-07-24 10:19:51
【问题描述】:

我的机器人有什么方法可以处理接收来自用户的多条消息?例如,我(机器人)要求用户输入一些信息,而该用户不是只发送一条包含我需要的信息的消息,而是分 3 条多条消息发送。

我的机器人现在的开发方式,它将处理第一条消息作为答案,并将处理下一条消息作为下一个问题的答案。

我希望它工作的方式是让机器人“等待”用户发送每条消息,也许在每条消息后等待几秒钟以检查没有收到新消息,然后将它们作为一个加入消息并处理。

【问题讨论】:

    标签: c# botframework


    【解决方案1】:

    这是可能的,但我不认为这是开发机器人时推荐的做法。

    原因是很难跟踪您现在收到的是哪条消息, 除非你用PrivateConversationData记录它

    一些伪代码:

    await context.PostAsync("please reply 3 message");
    context.Wait(ThreeMessageReceivedAsync);
    
    
    private async Task ThreeMessageReceivedAsync(IDialogContext context,
        IAwaitable<IMessageActivity> result)
    {
        context.PrivateConversationData.TryGetValue<string>("FirstMessage", out string firstMessage);
        context.PrivateConversationData.TryGetValue<string>("SecondMessage", out string secondMessage);
        context.PrivateConversationData.TryGetValue<string>("ThirdMessage", out string thirdMessage);
    
        var message = await result;
    
        if(string.IsNullOrEmpty(firstMessage))
        {
            context.PrivateConversationData.SetValue<string>("FirstMessage", message.Text);
            context.Wait(ThreeMessageReceivedAsync);
        }
        else if(string.IsNullOrEmpty(secondMessage))
        {
            context.PrivateConversationData.SetValue<string>("SecondMessage", message.Text);
            context.Wait(ThreeMessageReceivedAsync);
        }
        else if(string.IsNullOrEmpty(thirdMessage))
        {
            context.PrivateConversationData.SetValue<string>("ThirdMessage", message.Text);
    
            // you have got all three message, do your logic to it
            // if you want to join all three message, use variable firstMessage, secondMessage and message.Text for third
        }
    }
    
    hope above helps.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-12
      • 2019-03-03
      • 1970-01-01
      • 1970-01-01
      • 2021-04-30
      • 1970-01-01
      相关资源
      最近更新 更多