2016-05-15 12 views
1

Mein Bot (mit MS BotFramework) soll den Konversationsstrom hören. Wenn jemand "Chatbot" erwähnt, sollte es "Hier bin ich!" Sagen, ansonsten bleibt es ruhig. Es scheint sehr einfach zu sein und vielleicht ist es das, aber es fällt mir schwer, es zu implementieren. Hier ist, was ich habe:Konversation beenden

bot.add('/', function(session) { 
    if (someoneSaidChatbot) { 
    session('Here I am!") 
    } else { 
    // session.reset(), maybe? No! 
    // session.endDialog() then? Uh...nope. 
    // nothing? Hmmm. negative 
    } 
}); 

So, nichts funktioniert. Wenn ich dort hingehe, hängt der Bot einfach und hört auf, den Stream zu hören oder Befehle zu beantworten. Irgendwelche Gedanken?

Antwort

1

Dieser Code beendet einen Dialog, wenn jemand "Chatbot" als Teil der Äußerung eintippt. Suchst du danach?

bot.add('/', function (session) { 
    if (session.message.text.search("chatbot") >= 0) { 
     session.endDialog("Here I am"); 
    } 
}); 
0

Es kann auch davon abhängen, welchen Kanal Sie verwenden. Einige Kanäle bieten nicht die Möglichkeit, dass der Bot alle Nachrichten in der Konversation abhören kann.

1

würde Ich mag Nutzung vorschlagen endConversationAction() ein Bots Globale Aktionen

bot.endConversationAction(
     'enddialog',     //dialog Id 
     'Here I am',     //message 
     { matches: /^.*chatbot/i } //match pattern 
    ); 

zu registrieren, da diese globale Aktion ist, zu jeder Zeit, wenn Bot „Chatbot“ gehört, wird es sagen: „Hier bin ich“, wenn es Wenn Sie einen Dialog im Stapel haben, funktioniert Ihre vorgeschlagene Lösung möglicherweise nicht.

Verwandte Themen