it-swarm.com.ru

Facebook JS API не может выйти из системы

У меня есть localhost веб-сайт и сценарий с FB.logout(). После некоторых действий мне не удается выйти из системы, и я вижу следующее сообщение об ошибке в консоли:

Refused to display 'https://www.facebook.com/home.php' in a frame because it set 'X-Frame-  Options' to 'DENY'.

Я искал все StackOverflow и не нашел никакого рабочего решения. Сетевой инспектор показывает отмененный запрос около home.php.
Итак, я понимаю, что скрипт пытается загрузить домашнюю страницу Facebook в рамке, но не может, потому что это запрещено. Так как я могу это исправить? Почему logout() не работает для меня?

Мой код

// Facebook Basic Example

window.fbAsyncInit = function() {
  FB.init({
    appId      : '579651098766258',
    status     : true, // check login status
    cookie     : true, // enable cookies to allow the server to access the session
    xfbml      : true  // parse XFBML
  });

  FB.Event.subscribe('auth.authResponseChange', function(response) {
    if (response.status === 'connected') {
      testAPI();
    } else if (response.status === 'not_authorized') {
      FB.login();
    } else {
      FB.login();
    }
  });
};

(function(d){
 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);
}(document));



function testAPI() {
  FB.api('/me', function(res) {
    console.log(res);
    setTimeout(function(){
      FB.logout(); // <-- ERROR
    }, 2000);
  });
}
24
Enthusiast

Это решение сработало для меня:

  1. Перейдите на вкладку «Настройки» в приложении Facebook и на вкладке «Основные» прокрутите до + Добавить платформу.
  2. Нажмите + Добавить платформу и выберите сайт
  3. Добавьте свой URL своего веб-сайта (для меня такой же URL был добавлен на вкладке "Дополнительно" в URI перенаправления)
  4. Сохраните изменения и протестируйте снова.

Также я сделал видео на YouTube для решения этой проблемы: https://www.youtube.com/watch?v=7CNpLgwa0-c

enter image description here

34
SoldierCorp

Мне нужно было установить поле «Домены приложений» на вкладке «Настройки» в панели управления приложениями Facebook, чтобы оно работало: 

 enter image description here

8
vivanov

Я не уверен, как выглядит ваш HTML, но для меня это сработало на моей кнопке выхода из системы:

onclick="javascript:FB.logout(function() { window.location.reload() }); return false;"

Я надеюсь, что это поможет кому-то, по крайней мере, это решило мою проблему.

2
colin

Обновление на 2018 год

На панели инструментов приложения, под продуктом Facebook Login, нажмите Quickstart и следуйте инструкциям. Вызов API Logout должен начать работать!

Примечание: Я выбрал WWW и ввел http://localhost:5757/ в URL сайта.

1
Shane Davies

Я обнаружил, что с www . Example.com я получаю эту ошибку, а без www (example.com) ошибки нет ...

0
Milk Man