Facebook有时不会通过签名请求

时间:2012-11-28 23:34:00

标签: facebook node.js express facebook-javascript-sdk facebook-node-sdk

我有一个使用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模块不能正常工作。

0 个答案:

没有答案