builder.Prompts.text在远程托管后无法正常工作

时间:2017-03-06 15:29:48

标签: node.js botframework botbuilder

我有一个基于用户提示获取新闻文章的简单机器人。整个流程在本地使用模拟器工作正常,但在部署到服务器后,僵尸程序在遇到builder.Prompts.text块时失败。下面是我的代码,您将看到"询问文章计数"提示它在流程中停止的地方。

  • 在BOT框架页面上进行测试时接受了Bot显示
  • Bot正在通过WebChat和Slack
  • 接收消息
  • Bot在交互后也为每个频道显示0个问题

    var bot = new builder.UniversalBot(connector);
    var intents = new builder.IntentDialog();
    bot.dialog('/', intents);
    
    var HHCC = require('./hhcc.js');
    
    
    
    intents.matches(/^news/i, [
        function(session) {
            console.log("Intent Given!");
            session.beginDialog('/news');
        },
        function(session, results) {
            session.send('Enjoy reading!');
        }
    ]);
    
    bot.dialog('/news', [
        function(session) {
            console.log("Asking article count");
            builder.Prompts.text(session, 'How many articles would you like to see?');
        },
        function(session, results) {
            session.sendTyping();
            session.conversationData.count = results.response;
            HHCC.getNews(session.conversationData.count, session, function(newsArticles) {
                newsArticles.forEach(function(newsCard) {
                    session.send(newsCard);
                });
                session.conversationData.news = newsArticles;
                console.log(newsArticles);
                session.endDialog();
            });
        }
    ]);
    
    
    server.post('/api/messages', connector.listen());
    

我检查了所有日志,但似乎无法找到任何线索,因为它失败了。

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用builder.Prompts.number()而不是.text()?它只接受数字并且(我猜测你正在做这个)你不必解析结果。回复一个数字。如果没有提供错误消息或日志,则很难提供帮助。

您可能需要注意的一件事(如果使用builder.Prompts.number)是用户提供小数,因为提示将接受此输入,要求机器人舍入到最接近的整数。

此外,如果您已将results.response保存到会话对象中,则无需将session.conversationData.count作为另一个参数传递给HHCC.getNews()。您可以在函数中从会话中访问它。