首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >facebook messenger机器人上的res.send(200)问题

facebook messenger机器人上的res.send(200)问题
EN

Stack Overflow用户
提问于 2018-01-15 09:35:02
回答 1查看 306关注 0票数 0

我正在尝试使用nodejs构建一个facebook messenger机器人。我开发了一个具有核心功能的机器人。当测试用户发送GIF或贴纸的负面场景时,它必须响应“我无法得到你。对不起”。它确实会发送该消息,但它会挂起,此后每隔几分钟就会继续发送该消息。我注意到ngrok服务器为POST请求抛出了一个500HTTP Internal server错误。在进一步的调试中,我发现res.send(200)没有正确执行。我在res.send(200)之后得到的console.log stmt从来没有打印出来。不确定我可能错过了什么。任何帮助都是非常感谢的。已尝试重新启动服务器,并使用新的ngork https链接重新订阅应用程序。同样的消息继续打印出来:(。

这是我的代码。

代码语言:javascript
运行
复制
    server.post('/', (req, res, next) => {
            // Extract the body of the POST request
            let data = req.body;
            let incomingMessage = '';
            if(data.object === 'page') {
                data.entry.forEach(pageObj => {
                    // Iterate through the messaging Array
                    pageObj.messaging.forEach(msgEvent => {
                         incomingMessage = {
                            sender: msgEvent.sender.id,
                            timeOfMessage: msgEvent.timestamp,
                            message: msgEvent.message
                        }
                    });
                });
            }
            const {
                message,
                sender
            } = incomingMessage

            if(message.text) {
                f.txt(sender, 'Hi there!!!');
            } else {
                f.txt(sender, `I couldn't get you. Sorry :(`);
                //res.send(200);
            }
        res.send(200);
        console.log('We are at the end of post');
        return next();
    });
EN

回答 1

Stack Overflow用户

发布于 2018-01-15 09:45:11

也许这个答案不能解决你的问题,但它可能会有所帮助。如果您想发送200 HTTP代码,请使用以下代码:

res.sendStatus(200); // equivalent to res.status(200).send('OK')

另一方面,如果这不是中间件,您可以删除return next();行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48255932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档