web-dev-qa-db-ja.com

Facebook JS APIはログアウトできません

localhost Webサイトと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);
  });
}
_
32
Enthusiast

この解決策は私にとってうまくいきました:

  1. Facebookアプリケーションの[設定]タブに移動し、[基本]タブで[プラットフォームを追加]までスクロールします
  2. +プラットフォームの追加をクリックして、ウェブサイトを選択します
  3. WebサイトのURLを追加します(私にとっては、リダイレクトURIの[詳細設定]タブで追加されたのと同じURLでした)
  4. 変更を保存して、もう一度テストします。

また、この問題を解決するためにYouTube動画を作成しました: https://www.youtube.com/watch?v=7CNpLgwa0-c

enter image description here

39
SoldierCorp

Facebookのアプリのコントロールパネルにある[設定]タブの[アプリドメイン]フィールドを設定するには、このフィールドを設定する必要がありました。

enter image description here

9
vivanov

私はあなたのHTMLがどのように見えるかわかりませんが、私にとってこれは私のログアウトボタンで機能しました:

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

私はこれが誰かを助けることを願っています、少なくともこれは私の問題を修正しました。

2
Colinch

2019年5月2日までに更新:

1)httpsが強制されるようになったため、 https:// localhost を使用する必要があります。 httpは使用できなくなります。

2)[設定]> [基本]> [プラットフォームを追加]に移動して[ウェブサイト]を選択し、ローカルホストをホワイトリストに登録する必要があります

2
Jacky

2018年の更新

アプリダッシュボードのFacebookログイン製品で、クイックスタートをクリックし、指示に従います。ログアウトAPI呼び出しが機能し始めます!

注: WWWを選択して入力したhttp://localhost:5757/をサイトURLに入力します。

1
Shane Davies

このソリューションは私のために働きました-

  1. Facebookのログインに移動->クイックスタート-> www->アプリの元のURLを設定 " https:// localhost:42 "。

enter image description here

0
The_PratikshaK

www。example.comを使用するとこのエラーが発生し、www(example.com)を使用しないとエラーは発生しません...

0
Milk Man