API JS для Facebook не может выйти
У меня есть сайт localhost
и script с 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.
Поэтому я понимаю, что script пытается загрузить главную страницу 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);
});
}
Ответы
Ответ 1
Это решение работало для меня:
- Перейдите на вкладку "Настройки" в приложении "facebook" и в закладке "Основные", чтобы прокрутить вниз до "Добавить платформу"
- Нажмите "+ Добавить платформу" и выберите "Веб-сайт"
- Добавьте свой URL-адрес своего веб-сайта (для меня был тот же URL-адрес, добавленный на вкладке "Дополнительно" в URI переадресации).
- Сохранить изменения и снова проверить.
Также я сделал видео с youtube для решения этой проблемы: https://www.youtube.com/watch?v=7CNpLgwa0-c
![enter image description here]()
Ответ 2
Я должен был установить поле "Домены приложения" на вкладке "Настройки" в панели управления приложения Facebook, чтобы оно работало:
![enter image description here]()
Ответ 3
Я не уверен, как выглядит ваш HTML, но для меня это работало на моей кнопке выхода:
onclick="javascript:FB.logout(function() { window.location.reload() }); return false;"
Надеюсь, это поможет кому-то, по крайней мере, это устранило мою проблему.
Ответ 4
Обновление к 2018 году
На панели инструментов приложения, под продуктом Facebook Login, нажмите Quickstart и следуйте инструкциям. Вызов API выхода из системы должен начать работать!
![PiWFim.png]()
Примечание: я выбрал WWW и ввел http://localhost:5757/
в URL сайта.
Ответ 5
Я обнаружил, что с www.example.com я получаю эту ошибку и без www (example.com) нет ошибки...
Ответ 6
Обновление к 2019 году 2 мая:
1) https теперь применяется, поэтому вы должны использовать https://localhost. http больше не будет доступен.
2) Вам нужно внести белый список в свой локальный хост, перейдя в "Настройки"> "Основные"> "Добавить платформу" и выберите "Веб-сайт"