Kendo-ui JQuery 不会自动启动与 Microsoft botframework 的对话



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

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

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

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

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); 
}
}
} 

我找到了一个可能的解决方案,而不是使用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);
}
}
}

最新更新