我的聊天机器人(MS Botframework)如何忽略Slack通道中未提及的消息? BOT

时间:2017-09-26 20:41:30

标签: node.js botframework slack luis

我正在使用NodeJS的Micrososft Botframework开发一个聊天机器人 - LUIS.ai并使用对话框将其集成到Slack中。现在机器人在DM窗口上正常工作,但是当添加到松弛通道时,即使没有提到,机器人也会回复所有消息。

我知道机器人应该能够收听所有消息,但是我怎样才能定义programmaticaly只在提到时才在松弛通道中进行交互?

有没有办法确定对话是来自频道还是来自直接留言?

这是Dialogs的代码片段

            bot.dialog('intentName', [
                function (session, args, next) {
                    var intent = args.intent;
                    session.dialogData.item = {};
                    var item= builder.EntityRecognizer.findEntity(intent.entities, 'myEntity');
                    session.dialogData.itemNumber = item.entity;

                    // Prompt for title
                    if (!session.dialogData.item) {
                        builder.Prompts.text(session, 'What are you looking for?');
                    } else {
                        next();
                    }
                },
                function (session, results, next) {
                    if (results.response) {
                        session.dialogData.itemNumber = results.response;
                    }
                     //restify call
                     //session.send(response)
                      session.endDialog();
                    });
                }
            ]).triggerAction({
                matches: 'intentName'
            });

***********更新***********

我能够使用这段代码在频道对话和DM之间进行识别

if(session.message.address.channelId=="slack"){
            //Channel conversation
            if(session.message.address.conversation.isGroup){

                if(session.message.text.includes("@botname")){

                   //your code

                }
                session.endDialog();
                //bot not mentioned, hence do nothing
            }
    else{
           //your bot reply to a DM
     }
 }

0 个答案:

没有答案