当我尝试通过Facebook为我的机器人验证我的URL时,这就是我得到的。我知道这是一个数据类型问题。我发回一个字符串而不是一个int。这是我的代码的样子:
server.get("/webhook/",function(req,res,next){
var token = req.query.hub.verify_token;
if( token === process.env.VALIDATION_TOKEN ){
var challenge = parseInt( req.query.hub.challenge );
res.send( req.query.hub.challenge );
}else{
res.send("Error, wrong validation token");
}
return next();
});
尽管parseInt()
,res.send()
发回一串。如何让它发回一个int?
所以事实证明res.send
只会根据restify docs发回一个对象,数组,缓冲区或字符串(尽管快递也是如此)。
要发回一个整数,你有2个(sorta 3)选项:
你可以尝试res.end(req.query.hub.challenge.toString());
我了解到res.end
希望有一个String
类型作为参数。因此,将数字转换为字符串可能会有效。