Node.js 欢迎消息与节点js bot中的每条消息一起重复
我正在为我的节点js bot使用ADFS身份验证,它将与microsoft团队集成 我的问题是,当我登录bot时,我收到了一条欢迎信息-Node.js 欢迎消息与节点js bot中的每条消息一起重复,node.js,botframework,microsoft-teams,Node.js,Botframework,Microsoft Teams,我正在为我的节点js bot使用ADFS身份验证,它将与microsoft团队集成 我的问题是,当我登录bot时,我收到了一条欢迎信息- (session, results, next) => { if (session.userData.userName && session.userData.accessToken && session.userData.refreshToken ) { builder.Pro
(session, results, next) => {
if (session.userData.userName && session.userData.accessToken && session.userData.refreshToken ) {
builder.Prompts.text(session, "Welcome " + session.userData.userName + "! You are currently logged in into Hotel Bot. Type 'Help' for Bot Help ");
}
else {
session.endConversation("Goodbye.");
}
},
它是根对话框的一部分
现在,在这之后,当我试图要求任何事情,以机器人这个欢迎信息重复每一条消息。
如果我对此提示进行注释,则bot将停止响应
帮帮我,我怎样才能摆脱这个重复的信息
谢谢您可以尝试添加在中介绍的第一次运行对话框 样本如下:
// Add first run dialog
bot.dialog('firstRun', function (session) {
session.userData.firstRun = true;
session.send("Hello...").endDialog();
}).triggerAction({
onFindAction: function (context, callback) {
// Only trigger if we've never seen user before
if (!context.userData.firstRun) {
// Return a score of 1.1 to ensure the first run dialog wins
callback(null, 1.1);
} else {
callback(null, 0.0);
}
}
});
它利用客户变量
firstRun
检查用户之前是否来过。您还可以在onFindAction
事件中构建自己的逻辑。请查看。您只需使用session.send()发送欢迎信息即可。@Wajeed MSFT我看到了这个!!但问题是,当用户向bot发送任何命令时,..bot发送回复并用“/”对话框替换对话框..所以对于用户bot重启的每个问题,这就是为什么每次聊天时都会有欢迎消息提示用户。如果我替换为除root以外的任何其他自定义对话框,那么它将停止响应…我的diolog中有多个会话..第一个用于登录,第二个用于欢迎消息,第三个用于检查用户响应..我希望每次只运行第三个会话..但在当前场景中,会话2和3正在运行。。我只想运行会话3