我在这里关注botbuilder演示 - https://github.com/Microsoft/BotBuilder/blob/master/Node/examples/demo-skype/app.js
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: process.env.MICROSOFT_APP_ID,
appPassword: process.env.MICROSOFT_APP_PASSWORD
});
var bot = new builder.UniversalBot(connector);
server.post('/api/messages', connector.listen());
我想在SailsJS中托管这个机器人。 我按如下方式拨打了电话:
// config/routes.js
'POST /api/messages': {
controller: 'BotframeworkController',
action: 'listen',
},
控制器:
var builder = require('botbuilder');
var botconfig = sails.config.botframework;
var connector = new builder.ChatConnector({
appId: botconfig.MICROSOFT_APP_ID,
appPassword: botconfig.MICROSOFT_APP_PASSWORD
});
var bot = new builder.UniversalBot( connector, function( session ) {
session.send("%s, I heard: %s", session.userData.name, session.message.text);
});
// Add help dialog
bot.dialog('help', function (session) {
session.send("I'm a simple echo bot.");
}).triggerAction({ matches: /^help/i });
module.exports = {
listen: function( req, res, next ){
sails.log.debug('BotframeworkController.listen... started');
sails.log.debug(req.body);
return connector.listen( req, res );
// var test = connector.listen( req, res );
// sails.log.debug(test );
},
}
我没有收到任何错误 - 我可以看到 - 但没有回复给客户回复。
任何想法/建议都会受到赞赏吗?
答案 0 :(得分:0)
我还没有与SailsJS
合作,但看到它会在收到listen
的POST时调用BotframeworkController
/api/messages
方法。我读得对吗?
connector.listen()
本身不是处理程序,它是处理程序的路径。它返回一个处理传入请求和响应的函数。请尝试这样:
module.exports = {
listen: connector.listen()
}