Facebook API - auth.login不会触发

时间:2012-09-17 08:02:21

标签: facebook facebook-javascript-sdk facebook-authentication

我一直在使用代码通过我的应用程序连接到Facebook,当我再次检查时,它突然无法正常工作。更具体地说,我能够连接到Facebook,但auth.login订阅没有触发,我需要在登录Facebook后做一些事情。这是我的代码:

    window.fbAsyncInit = function () {
    FB.init({ appId: facebookAppId,
        status: true, // check login status
        cookie: true, // enable cookies to allow server to access session 
        xfbml: true,  // enable XFBML and social plugin
        oauth: true   // enable OAuth 2.0
    });
    $('#sender').val('linked');

    FB.getLoginStatus(function (response) {
        if (response.authResponse) {
            FB.logout();
        }
    });

    FB.Event.subscribe('auth.login', function (response) {
        if (response.status == 'connected') {

            //Get data Facebook returned and save

            //Hide button

            //Display Success Message
        }
        else {
            //Display Failed Message
        }
    });
};

(function (d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) { return; }
    js = d.createElement(s); js.id = id;
    js.src = "//connect.facebook.net/en_US/all.js";
    fjs.parentNode.insertBefore(js, fjs);
} (document, 'script', 'facebook-jssdk'));

我的HTML页面中有这个按钮:

<fb:login-button scope="publish_stream,offline_access">{0}</fb:login-button>

其他一些信息:

我注意到连接到Facebook时还添加了其他步骤。最后我查了一下,我只需要使用我的凭据登录,但我注意到当前的登录程序有两个额外的步骤。我不知道这些额外的步骤是否与它有关,但我只是把它扔出去了:

  1. 一个对话框,其中包含有关该应用的一些信息以及一个显示“使用Facebook登录”的按钮。
  2. 另一个对话框,其中应用询问用户是否允许发布。
  3. 那么,我做错了什么?:(

2 个答案:

答案 0 :(得分:0)

两件事:

  • 我开始认为facebook在'auth.login'中做了一些改变,现在慢慢地对越来越多的人不起作用。 看到有关它的相关问题 -

FB.Event.Subscribe not working for some users

Auto login facebook - FB.Event.subscribe auth.login doesn't work

  • 因为很久以前你问过它,如果你使用php sdk,你可能需要刷新你的SDK文件,因为它不断变化。

答案 1 :(得分:0)

我遇到了刷新页面后未触发“auth.login”的问题,我进行了更改:

 FB.Event.subscribe('auth.login'...

`FB.Event.subscribe('auth.authResponseChange'...`