C# Azure Bot Framework |如果用户在一段时间内没有响应,那么如何向用户发送提醒?

C# Azure Bot Framework |如果用户在一段时间内没有响应,那么如何向用户发送提醒?,c#,botframework,azure-web-app-service,C#,Botframework,Azure Web App Service,我指的是这个问题- 如果10秒钟内机器人上没有任何活动 机器人发送消息>>看起来你现在不在那里 机器人>>你回来后再打我一次。再见 在nodejs中,可以通过在回合处理程序(onTurn或onMessage)中设置超时来完成此操作。如果希望消息在用户最后一条消息之后的X时间出现,则需要清除超时并在每次转弯时重置超时。超时将发送消息一次。如果希望在用户最后一条消息后每隔X时间重复一次,则可以使用间隔而不是超时。我发现发送消息的最简单方法是作为主动消息,因此您确实需要使用此方法从botbuilder

我指的是这个问题-

如果10秒钟内机器人上没有任何活动

机器人发送消息>>看起来你现在不在那里


机器人>>你回来后再打我一次。再见

在nodejs中,可以通过在回合处理程序(onTurn或onMessage)中设置超时来完成此操作。如果希望消息在用户最后一条消息之后的X时间出现,则需要清除超时并在每次转弯时重置超时。超时将发送消息一次。如果希望在用户最后一条消息后每隔X时间重复一次,则可以使用间隔而不是超时。我发现发送消息的最简单方法是作为主动消息,因此您确实需要使用此方法从botbuilder库中包括
TurnContext
BotFrameworkAdapter
。C#的语法可能不同,但这应该为您指明了正确的方向。以下是我使用的函数:

async onTurn(上下文){
if(context.activity.type==ActivityTypes.Message){
//保存会话引用
const conversationData=wait this.dialogState.get(context,{});
conversationData.conversationReference=TurnContext.getConversationReference(context.activity);
等待这个.conversationState.saveChanges(上下文);
console.log(conversationData.conversationReference);
//重置非活动计时器
clearTimeout(此.inactivityTimer);
this.inactivitymer=setTimeout(异步函数(conversationReference){
log(“用户处于非活动状态”);
试一试{
const adapter=新的BotFrameworkAdapter({
appId:process.env.microsoftAppID,
appPassword:process.env.microsoftAppPassword
});
等待适配器。continueConversation(conversationReference,async turnContext=>{
等待turnContext.sendActivity('您还在吗?');
});
}捕获(错误){
//console.log('请求错误。请确保您的邮件包含对话引用和邮件文本');
console.log(错误);
}
},300000,会话数据。会话参考);
//
}
}

如果您搜索“bot框架用户空闲”,您将找到大量答案。请参阅&并向您的用户发送一封电子邮件。谢谢@ranusharao。。我找到了解决方案..这个解决方案对你有用吗?如果是这样,请考虑接受和投票,以便其他人能找到答案!