Port botbuilder将听众改为sailsjs路线

时间:2017-04-18 19:04:37

标签: sails.js botframework

我在这里关注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 );
  },
}

我没有收到任何错误 - 我可以看到 - 但没有回复给客户回复。

任何想法/建议都会受到赞赏吗?

1 个答案:

答案 0 :(得分:0)

我还没有与SailsJS合作,但看到它会在收到listen的POST时调用BotframeworkController /api/messages方法。我读得对吗?

connector.listen()本身不是处理程序,它是处理程序的路径。它返回一个处理传入请求和响应的函数。请尝试这样:

module.exports = {
  listen: connector.listen()
}