Я уверен, что я просто пропускаю что-то в документах API Facebook. В принципе, после того, как я загрузил FB-график, мне нужно знать, активен ли сеанс ... Я не могу просто предположить, что они вышли из системы и просто перерисовываются, если они вошли в систему после того, как «auth.statusChange» событие запускается. Мне нужно знать сразу с места.Facebook API - обнаружение, если сеанс активен ИЛИ НЕ активен
Ниже приведен код, который я использовал. Самое главное, что FB.getLoginStatus/getAuthResponse/getAccessToken не работает, как я ожидал; по существу, где он указывает, когда вызывается, независимо от того, вошли ли они в систему или нет.
(function(d) { // Create fb-root var fb_root = document.createElement('div'); fb_root.id = "fb-root"; document.getElementsByTagName('body')[0].appendChild(fb_root); // Load FB Async var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; if (d.getElementById(id)) {return;} js = d.createElement('script'); js.id = id; js.async = true; js.src = "//connect.facebook.net/en_US/all.js"; ref.parentNode.insertBefore(js, ref); // App config-data var config = { appId : XXXX, cookie: true, status: true, frictionlessRequests: true }; window.fbAsyncInit = function() { // This won't work. // I can't assume they're logged out and rely on this to tell me they're logged in. FB.Event.subscribe('auth.statusChange', function(response) {}); // Init FB.init(config); // These do not inidicate if the user is logged out :( FB.getLoginStatus(function(response) { }); FB.getAuthResponse(function(response) { }); FB.getAccessToken(function(response) { }); }; }(document));
Любая помощь очень ценится. :)
'не работает, как я ожидал'? Они работают так, как должны. Какие проблемы у вас с ними? – Dhiraj
Мне нужен метод, чтобы либо возвращать Boolean, если пользователь вошел в систему, либо возвращать литерал объекта из данных сеанса (возможно, со статусом состояния), который указывает, что вошел в систему. Вместо этого кажется, что метод первоначально предполагает, что пользователь вышел из системы и подписаться на изменение статуса авторизации, чтобы уведомить вас; который изначально уведомляет вас только о том, что они вошли в систему, иначе ничего не делает. Это проблема, с которой я столкнулся, когда мне нужно знать, вошли ли они в систему или нет. Наверное, вы могли бы сказать, что я хочу сделать это синхронно. –