将Microsoft Bot Framework与api.ai集成

问题描述:

我正在将Microsoft Bot Framework与api.ai集成。我遵循教程here。在编码方面,我还使用Heroku命令行将机器人部署到Heroku。将Microsoft Bot Framework与api.ai集成

我用下面的代码:

(我改变了APP ID和密码):

var builder = require('botbuilder'); 
var restify = require('restify'); 
var apiairecognizer = require('api-ai-recognizer'); 
var request = require('request'); 

//========================================================= 
// Bot Setup 
//========================================================= 

// 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 bot 
var connector = new builder.ChatConnector({ 
appId: '4c8f3u2b-c56n-4117-bc16-ec31eeb5d25c', 
appPassword: '4CBNO8vBGtdcGh9PoiVYottY' 
}); 

var connector = new builder.ConsoleConnector().listen(); 
var bot = new builder.UniversalBot(connector); 

var recognizer = new apiairecognizer("84c78b2c15684c7380c6a74c8fbb343f"); 
var intents = new builder.IntentDialog({ 
recognizers: [recognizer] 
}); 

bot.dialog('/',intents); 

intents.matches('Flow_1',function(session, args){ 
var fulfillment = builder.EntityRecognizer.findEntity(args.entities, 'fulfillment'); 
if (fulfillment){ 
var speech = fulfillment.entity; 
session.send(speech); 
}else{ 
session.send('Sorry...not sure how to respond to that'); 
} 
}); 

intents.onDefault(function(session){ 
session.send("Sorry...can you please rephrase?"); 
});` 

我的package.json

{ 
    "name": "nodebot", 
    "version": "1.0.0", 
    "description": "", 
    "main": "index.js", 
    "scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1" 
    }, 
    "author": "", 
    "license": "ISC", 
    "dependencies": { 
    "api-ai-recognizer": "^1.0.1", 
    "botbuilder": "^3.8.4", 
    "restify": "^4.3.0" 
    } 
} 

我Procfile

web: node app.js 

但是, r成功部署到Heroku,我看到以下错误: {“code”:“ResourceNotFound”,“message”:“/ api/messages does not exist”}

即使当我尝试从Bot框架模拟器,我看到下面的错误: 请求“http://localhost:3978/api/messages”失败:[404]未找到

我有以下几个问题:1。 如何成功地与框架集成api.ai? 2.如何承载Heroku?

似乎没有定义api/messages路由。您缺少此行server.post('/api/messages', connector.listen());

此外,您正在定义连接器两次,ChatConnectorConsoleConnector。请务必删除与ConsoleConnector相关的代码。

+0

请帮助我如何维护api.ai中的会话。 – AITea

+0

此外,当我部署到Heroku:开放时: https://pacific-hamlet-32804.herokuapp.com 其显示 {“code”:“ResourceNotFound”,“message”:“/ does not exist”} 开启 https://pacific-hamlet-32804.herokuapp.com/api/messages 其显示 {“code”:“MethodNotAllowedError”,“message”:“GET is not allowed”} – AITea

+0

GET错误是可以的,因为路由只是用于POST –