2017-09-21 1 views
1

Ich bin hier, um von jemandem von euch fragen wissen, warum mein Bot den Dialog nicht starten wird? Ich bin ein neuer Typ in der Welt der Bots und lese viel davon, aber ich kann nicht scheinen, das zu beheben.Bot-Dialog startet nicht

var restify = require('restify'); 
var builder = require('botbuilder'); 

// Setup Restify Server 
var server = restify.createServer(); 
server.listen(process.env.port || process.env.PORT || 3978, function() { 
    console.log('%s listening to %s', server.name, server.url); 
}); 

// Create chat connector for communicating with the Bot Framework Service 
var connector = new builder.ChatConnector({ 
    appId: process.env.MICROSOFT_APP_ID, 
    appPassword: process.env.MICROSOFT_APP_PASSWORD 
}); 


var luisAppUrl = process.env.LUIS_APP_URL || 'https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/.......'; 
var bot = new builder.UniversalBot(connector); 

var bot = new builder.UniversalBot(connector, function(session, args, next) { 
    session.send('How can i help you ?') 
    session.endDialog(); 
    next(); 
}); 

bot.recognizer(new builder.LuisRecognizer(luisAppUrl)); 


bot.dialog('Location', [ 
    function (session, args, next) { 
    var intent = args.intent; 
    var locations = builder.EntityRecognizer.findEntity(intent.entities, 'Location'); 
    var location = session.dialogData.location = { 
     title: title 
    }; 
    // session.send() 
    if (!locations){ 
     builder.Prompts.text(session, 'From which settlement do you want to know the location? ') 
    } else { 
     next(); 
    } 

    }, 
    function(session, results) { 
    var location = session.dialogData.location; 
    if(results.response){ 
     note.text = results.response; 
     // session.send('Our company is located in Antwerp') 
    } 
    } 
]).cancelAction({ 
    matches: /^(cancel|nevermind)/i, 
    confirmPrompt: "Are you sure?" 
}); 

Also mein Bot stürzt einfach ab und startet den Bot.dialog nicht? Können Sie sehen, was los ist?

+0

Was meinst du mit Absturz, erhalten Sie einen Fehler? Wenn ja, was ist es? Testen Sie nur auf dem Emulator oder einem anderen Kanal? Welches Bot Builder SDK verwendest du? – JasonSowers

Antwort

1

Der Bot abstürzt, weil Sie die UniversalBot Klasse sind Instanziieren zweimal:

var luisAppUrl = process.env.LUIS_APP_URL // etc 
var bot = new builder.UniversalBot(connector); 

var bot = new builder.UniversalBot(connector, function(session, args, next) { 
    session.send('How can i help you ?') 
    session.endDialog(); 
    next(); 
}); 

Versuchen Sie das Entfernen ersten bot so Ihr Code ist nur:

var luisAppUrl = process.env.LUIS_APP_URL // etc 

var bot = new builder.UniversalBot(connector, function(session, args, next) { 
    session.send('How can i help you ?') 
    session.endDialog(); 
    next(); 
}); 

EDIT:

Um den Dialog 'Location' zu erreichen, müssen Sie einehinzufügen 0 zu Ihrem dialog.

bot.dialog('Location', [ 
    function (session, args, next) { 
    // ... 
    }, 
    function(session, results) { 
    // ... 
    } 
]).triggerAction({ 
    matches: 'Location' // What your intent from LUIS is called. 
}).cancelAction({ 
    matches: /^(cancel|nevermind)/i, 
    confirmPrompt: "Are you sure?" 
}); 
+0

Alles klar, das ist es! Danke für die Hilfe. – KHaemels

+0

Kein Problem, froh, dass ich helfen konnte! –