Facebook登录按钮不会触发页面刷新,FB.Event.subscribe不会';我好像没有登记

Facebook登录按钮不会触发页面刷新,FB.Event.subscribe不会';我好像没有登记,facebook,facebook-php-sdk,Facebook,Facebook Php Sdk,我已经在我的网站上登录了Facebook。我正在使用JS-SDK和PHP-SDK 我99.9%确定我在正确的地方有所有正确的文件,因为实际登录工作正常。但是,我无法让页面在用户登录后重新加载 这是facebook登录按钮代码(“Scope”是新的“perms”,我今天才发现): 登录 一旦用户授权等,对话框关闭,但什么也没有发生。用户尚未登录,页面也不会重新加载 当我手动重新加载时,用户已登录 这是我在页脚中的代码,应该侦听登录: <script> FB.Event.sub

我已经在我的网站上登录了Facebook。我正在使用JS-SDK和PHP-SDK

我99.9%确定我在正确的地方有所有正确的文件,因为实际登录工作正常。但是,我无法让页面在用户登录后重新加载

这是facebook登录按钮代码(“Scope”是新的“perms”,我今天才发现):

登录
一旦用户授权等,对话框关闭,但什么也没有发生。用户尚未登录,页面也不会重新加载

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

这是我在页脚中的代码,应该侦听登录:

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

FB.Event.subscribe('auth.login',函数(响应){
window.location.reload();
});
在我的ChromeDeveloperToolsJS控制台中,我得到一个错误,说“未捕获引用:未定义FB”。一旦页面加载,甚至在单击Facebook登录按钮之前,此错误就会出现

你知道我可能做错了什么吗?谢谢

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

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

FB.Event.subscribe('auth.login',函数(响应){
window.location.reload();
},秘密:'';


这已经被Facebook修复。

谢谢,我会尝试一下,然后告诉你!但可能存在的问题是:查看我的源代码的人不会看到这个密码吗?这对我来说根本不起作用,我检查了我的源代码,每个人都能清楚地看到这个密码。我不喜欢这样。它会的,但我相信这个秘密是绑定到你在应用程序设置中指定的域的。我不知道Facebook为什么会公开函数getApiSecret();在PHP SDK中。
<script>
    FB.Event.subscribe('auth.login', function(response) {
        window.location.reload();
    }, secret: '<?php print $facebook->getApiSecret(); ?>');
</script>