当前位置 : 主页 > 网页制作 > Nodejs >

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

来源:互联网 收集:自由互联 发布时间:2021-06-16
我有一个简单的机器人,可以根据用户提示获取新闻文章.整个流程在本地使用模拟器工作正常,但在部署到服务器后,僵尸程序在遇到builder.Prompts.text块时失败.下面是我的代码,你会看到一
我有一个简单的机器人,可以根据用户提示获取新闻文章.整个流程在本地使用模拟器工作正常,但在部署到服务器后,僵尸程序在遇到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());

我已经检查了所有日志,似乎无法找到任何线索,因为它失败了相当默默.

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

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

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

网友评论