我有一个使用Node JS和Express开发的Facebook Pagetab应用程序。它似乎在大多数情况下都能完美运行,但有时则不然。我有问题复制问题,因此很难调试,但我认为我找到了问题。
当主页加载时,我利用Thuzi的Facebook模块(https://github.com/Thuzi/facebook-node-sdk)来筛选Facebook传递给我的签名请求,以确定用户是否喜欢该页面:
var fb = require('fb');
var signedRequest = fb.parseSignedRequest(req.body.signed_request, process.env.FACEBOOK_APP_SECRET);
if(signedRequest ){
if( signedRequest.page.liked){
res.redirect('/authorise');
}
else {
res.redirect('/gate');
}
}
else {
console.log('No signed request');
}
但是,有时候“没有签名的请求”会被发送到控制台,所以Facebook有时候不会传递已签名的请求。因此,用户只是显示为空白屏幕。如果我使用代码重定向到主页,它就会陷入无限循环。我需要签名的请求才能相应地重定向用户。有没有理由让Facebook有时不向我发送签名请求?
如果我检查req.body.signed_request的内容,它有时是空的,所以它不像fb模块不能正常工作。