Facebook JS API无法注销

时间:2014-03-11 16:53:54

标签: javascript facebook oauth-2.0 facebook-javascript-sdk

我有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);
  });
}

7 个答案:

答案 0 :(得分:37)

这个解决方案对我有用:

  1. 转到facebook应用程序的“设置”选项卡,然后在“基本”选项卡中滚动到“添加平台”
  2. 点击+添加平台,然后选择网站
  3. 添加您网站的网址(对我而言,重定向URI上的高级标签页上添加的网址相同)
  4. 保存更改并重新测试。
  5. 我还制作了一个YouTube视频来解决这个问题:https://www.youtube.com/watch?v=7CNpLgwa0-c

    enter image description here

答案 1 :(得分:9)

我必须在Facebook的应用程序控制面板的“设置”标签中设置“应用程序域”字段,以使其正常工作:

enter image description here

答案 2 :(得分:2)

我不确定你的HTML是怎么样的,但对我来说这适用于我的注销按钮:

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

我希望这会帮助别人,至少这解决了我的问题。

答案 3 :(得分:1)

2018年更新

在App Dashboard的Facebook Login产品下,单击Quickstart并按照说明进行操作。注销API调用应开始工作!

注意:我选择了WWW,并在网站URL中输入了http://localhost:5757/

答案 4 :(得分:1)

在2019年5月2日之前更新:

1)现在强制执行https,因此必须使用https://localhost。 http将不再可用。

2)您需要将本地主机列入白名单,方法是进入“设置”>“基本”>“添加平台”,然后选择“网站”

答案 5 :(得分:0)

我发现使用 www .example.com我收到此错误,没有www(example.com),没有错误...

答案 6 :(得分:0)

此解决方案对我有用-

  1. 转到Facebook登录->快速入门-> www->设置应用原始网址“ https://localhost:4200”。

enter image description here