在外部页面上使用requireSession登录后,为什么fb:fan控件会消失?

时间:2010-03-17 10:39:00

标签: javascript html facebook

REQS:

  • 我想制作一个带有“成为粉丝”按钮的外部页面。
  • 我希望用户在打开页面后登录Facebook(这是因为网站上的其他功能)

所以我在页面加载后调用FB.Connect.requireSession,并在页面上放置一个<fb:fan></fb:fan>控件。

然后当我打开页面时,我看到“连接Facebook继续”弹出窗口和一个小的“成为粉丝”按钮。这似乎是对的。当我使用弹出窗口登录Facebook时,“成为粉丝按钮”消失!!

任何人都可以解释这种奇怪的行为,或者有人知道以不同的方式达到我的要求的方式。

下面你可以看到我的代码。

提前致谢!

    <!-- Head -->
    <script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/nl_NL" type="text/javascript"></script>
    <script type="text/javascript">

        var fbApiKey = "MY_KEY";
        var fbXdReceiver = "xd_receiver.htm";

        function fbLoad() {
            FB.init(fbApiKey, fbXdReceiver);

            FB.ensureInit(function() {
                FB.Connect.requireSession(null, null, false);
            });
        }

    </script>


    <!-- Body onload="fbLoad();" -->
    <fb:fan profile_id="24932281961" name="Nutella" id="fanButton" stream="0" connections="0" logobar="0" width="250"></fb:fan>

1 个答案:

答案 0 :(得分:0)

我通过在成功登录后刷新页面来解决这个问题

所以我用requireSession调用回调

FB.ensureInit(function() {
   FB.Connect.requireSession(requireSessionSuccess, null, false);
});

这是回调的代码

function requireSessionSuccess() {
   window.open('default.aspx?fbloggedin=true', '_self');
}