Node.js 欢迎消息与节点js 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

我正在为我的节点js bot使用ADFS身份验证,它将与microsoft团队集成

我的问题是,当我登录bot时,我收到了一条欢迎信息-

 (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