2

我一直在使用代码通过我的应用程序连接到 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. 另一个对话框,应用程序在其中询问用户是否允许发布。

那么,我做错了什么?:(

4

2 回答 2

0

两件事情:

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

FB.Event.Subscribe 不适用于某些用户

自动登录 facebook - FB.Event.subscribe auth.login 不起作用

  • 因为你很久以前问过,如果你使用 php sdk,你可能需要刷新你的 SDK 文件,因为它不断变化。
于 2013-01-16T13:27:17.883 回答
0

我有一个问题是刷新页面后没有触发“auth.login”,我更改了:

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

`FB.Event.subscribe('auth.authResponseChange'...`
于 2021-03-16T16:48:12.510 回答