我正在开发一个与Facebook集成的Facebook应用程序,并试图获取用户的FB会话。据我所了解,一般使用情况如下:
- 调用
FB.init()
- 调用
FB.getLoginStatus
并给它适当的回调函数。
我运行了以下代码(应用ID)。
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript">
<!--
function init(){
FB.init({
appId : '9999999999999',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
channelUrl : 'http://127.0.0.1:8888/channel.html', // custom channel
oauth : true // enable OAuth
});
alert('going to call FB.getLoginStatus ');
FB.getLoginStatus(function(response) {
alert('whoo hoo!!! getLoginStatus called the callback');
});
}
init();
//-->
</script>
如果用户在同一浏览器会话中已经登录Facebook,则一切都按预期工作-返回填充的_response.authResponse_
。但是,如果用户没有登录Facebook,则回调根本不会触发。通过检查浏览器的网络日志,我看到Facebook返回以下响应(从http://www.facebook.com/dialog/oauth
请求)。
我在Chrome和Firefox(Mac)上进行了检查。 更新 我想感谢所有回答的人。 Ben的评论给出了答案。应用程序错误:获取您请求的应用程序数据时出现问题。该应用程序可能无效,或者可能存在临时故障。请稍后再试。
谢谢Ben - 你为我节省了很多沮丧。