Facebookアプリを作成していますが、JavaScript APIを使用してユーザーのログインステータスを取得しようとすると、エラーが発生することがあります。
「X-Frame-Optionsで表示が禁止されているため、ドキュメントの表示が拒否されました。」
ユーザーアカウントではなく、アプリの[ログインステータスの確認]ページのみにアクセスするたびにこれを再現できましたFacebookをページとして使用している場合。これは問題の原因であることがわかっているので、これを回避するのは簡単ですが、ユーザーはこれを知らない可能性があります。
ユーザーがFacebookをページとして使用しているかどうかを判断する方法はありますか?それは私のアプリ全体をかなり台無しにするようですので。
私もこの問題があり、修正しました:ユーザーが既にログインしているときに、アプリがユーザーをFacebookからログイン画面にリダイレクトしていました(認証ダイアログボックス)。ログイン、またはログインしていない場合はダイアログボックスへ。
これは、FacebookがWebブラウザーからアプリにリダイレクトし、Facebook承認サインインにリダイレクトする場合の問題です。フォームがページを置き換え、Facebookキャンバスにロードされないことを確認する必要があります。 。
したがって、次のようにクリーンなリダイレクトを行う必要があります-これはノードの例です
res.send("<script> top.location.href='"+ "https://www.facebook.com/dialog/oauth?
client_id=*********&redirect_uri=http://apps.facebook.com/myapp" + "'</script>");
このFacebookの開発ページとそのステップ3を見てください
https://developers.facebook.com/docs/howtos/login/server-side-login/
デスクトップだけのモバイルアプリには問題がないようです
このJavaScriptは機能しますか?
document.write(isFacebookPage()?"YES, I'm in a Facebook Page!":"No, not a Facebook Page");
function isFacebookPage(){
return (document.location.href.indexOf('/pages/')>0);
}