Kendo-ui JQuery无法自动启动与Microsoft botframework的对话

问题描述 投票:0回答:1

我想将Kendo-UI用于JQuery作为我的机器人的前端。

This演示是我要使用的。当您启动演示时,机器人会自动向您打招呼,但是当我将密码更改为我的秘密时,它不会启动对话。用我的秘密,它只是在开始之前等待用户输入。当我使用Bot框架模拟器测试我的Bot时,它在连接时确实会发送一条消息。

我不知道为什么会这样。我没有更改kendo演示的任何代码,这使我认为问题出在我的bot框架上。另一方面,仿真器确实给了我想要的结果。我不知道如何解决我的问题。

下面是MyBot.cs的onMemberFyresAsync函数,据我了解,当新客户端连接时,该函数应发送问候消息。

 protected override async Task OnMembersAddedAsync(IList<ChannelAccount> membersAdded, ITurnContext<IConversationUpdateActivity> turnContext, CancellationToken cancellationToken)
        {
            foreach (var member in membersAdded)
            {
                if (member.Id != turnContext.Activity.Recipient.Id)
                {
                    //sends some messages to welcome the user + suggestedactions
                    await WelcomeNewUser(turnContext, cancellationToken); 
                }
            }
        } 
kendo-ui botframework
1个回答
1
投票

我找到了可能的解决方案,而不是使用OnMembersAddedAsync功能,而是从OnTurnAsync发送欢迎消息。我删除了OnMembersAddedAsync,因为它不再执行任何操作。


 public override async Task OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken = default)
        {
            await base.OnTurnAsync(turnContext, cancellationToken);


            if (turnContext.Activity.Type == ActivityTypes.Message)
            {
                // Save any state changes that might have occured during the turn.
                await ConversationState.SaveChangesAsync(turnContext, false, cancellationToken);
                await UserState.SaveChangesAsync(turnContext, false, cancellationToken);
            }
            else
            {
                // Send an initial welcome message
                if (turnContext.Activity.Type == ActivityTypes.ConversationUpdate && turnContext.Activity.MembersAdded.FirstOrDefault()?.Id == turnContext.Activity.Recipient.Id)
                {
                    await WelcomeNewUser(turnContext, cancellationToken);
                }
            }
        }

© www.soinside.com 2019 - 2024. All rights reserved.