2012-04-27 22 views
0

Facebook Oauthを使用しています。私のアプリケーションはiframeにあります。Facebook OauthはIEとFirefoxのIframeで失敗しています

https://graph.facebook.com/oauth/authorize?client_id=XXXXX&redirect_uri=XXXX&scope=offline_access,publish_stream

REDIRECT_URIはhttps:次は私の最初のOAuth URLです。

私はエラーページ以下になっていますIE8で

:!

[当初はFacebook.comのリンクにアクセスしてくださいを示し] [1]

[次に、それは、次のエラーページを表示] [2]

このコンテンツはフレームに表示されません

Firefoxでは空白のページが表示されます。だからFacebook OauthはIEだけでなくFirefoxでも働いていません。あなたのサイトにいくつかの投稿がありました。しかしそれらは私の問題を解決するのに役立たなかった。 https://developers.facebook.com/docs/reference/dialogs/によると

+0

あなたのサイトはどのブラウザでも動作しますか? iframeの内部でFB oauthを実行することはできません。 – chesles

+0

いいえ、どのブラウザでも動作していません。去年はすべてのブラウザで動作していました。 FacebookはiframeのOauthのた​​めに何かを変えましたか? – Mahesh

+0

はい、私が間違っていない限り、彼らは搾取の可能性のために許可しませんでした。 – chesles

答えて

3

のiframe:アプリケーションによって使用するためにFacebookのキャンバスページ内のiframe内で実行されています。ライトボックススタイルのオーバーレイ内にダイアログを表示します。クリックジャックの危険性があるため、これは特定のダイアログボックスでのみ許可され、有効なaccess_tokenを渡す必要があります。 このモードはOAuthダイアログではサポートされていません。あなたはIFRAMEの内部でダイアログをロードしている、表示タイプとしてiframeを指定していない、とFacebookはクリックジャッキングを防ぐために、これを検出していても

<script type="text/javascript"> 
window.open('https://www.facebook.com/dialog/oauth?display=popup&client_id=...'); 
</script> 

または類似したもの(など、リダイレクトを行うサイトのURLを開く):この周り

一つの良い方法は、認証を処理するポップアップウィンドウを開くことです。