Facebook登录按钮不会触发页面刷新,FB.Event.subscribe似乎没有注册

时间:2011-10-06 17:50:28

标签: facebook facebook-php-sdk

我在我的网站上登录Facebook。我正在使用JS-SDK,再加上PHP-SDK。

我99.9%确定我在正确的位置拥有所有正确的文件,因为实际的登录工作正常。但是,一旦用户登录,我就无法启动页面来重新加载。

这是facebook登录按钮代码('Scope'是新的'perms',正如我今天刚刚发现的那样):

<fb:login-button scope="email,user_birthday">Sign In</fb:login-button>

一旦用户授权等,对话框关闭,但没有任何反应。用户尚未登录,并且页面未重新加载。

当我手动重新加载时,用户已登录。

这是我的页脚中应该监听登录的代码:

<script>
    FB.Event.subscribe('auth.login', function(response) {
        window.location.reload();
    });
</script>

在我的Chrome开发者工具JS控制台中,我收到一条错误消息“未捕获的参考:FB未定义”。即使在点击Facebook登录按钮之前,页面加载时也会出现此错误。

关于我可能做错什么的任何想法?谢谢!

1 个答案:

答案 0 :(得分:0)

我发现将应用程序机密传递给auth.login调用会导致事件正确触发。您可以将应用程序密钥从PHP传递给javascript函数,如下所示:

<script>
    FB.Event.subscribe('auth.login', function(response) {
        window.location.reload();
    }, secret: '<?php print $facebook->getApiSecret(); ?>');
</script>

<击>

此后由Facebook修复。