以下のサンプルソースをコピペして挙動を確認しています。
http://eeyan.hateblo.jp/entry/2013/02/04/193920
まず、facebookページのiframe内に表示された『facebookにログイン』というリンクをクリックすると『このコンテンツはフレーム内で表示できません』と怒られてしまいます。
素人ながら『IEでのcookieに問題があるのか・・・』と
$facebook = new Facebook(array(
'appId' => '*****',
'secret' => '*************',
'cookie' => true,
));
と'cookie'を追加したり
$ua = $_SERVER['HTTP_USER_AGENT'];
// IEのcookieを許可する
if (strpos($ua, 'MSIE') !== FALSE) {
header('p3p: CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"');
}
をソースの一番上に追加したりしてみますが怒られっぱなしです。
文字数の関係で質問の続きは補足へ記載します。
x-frame-optionが原因でしょうか。
https://developer.mozilla.org/ja/docs/HTTP/X-Frame-Options
https://www.facebook.com/Hivelocity.inc/posts/323402541028790
http://buzzwordjp.blogspot.jp/2011/09/iframe-x-frame-options-http.html
3つ目のリンクを参考にして、metaタグに
<meta http-equiv="X-FRAME-OPTIONS" content="SAMEORIGIN" />
を追加してみてください。
このタグによって50%くらいの確率で問題が解決しますが、できない場合もあるので、お手数ですがその時はその旨コメントしてください。
---
追記です。
http://blog.livedoor.jp/qoozy/archives/52524054.html
もしかしたらこのURLが参考になるかもしれませんので見てみてください。
$facebook->getLoginUrl($params);
で生成されたURLがおかしいのか?と、生成されたURLを一旦メモなどにコピぺしクリックすると、正常にアプリ許可の画面が表示され、承認するとリダイレクトURLに飛んでくれます。
ただし、『ユーザー情報』画面ではなく『facebookにログイン』画面が表示され、『facebookにログイン』のリンクをクリックすると『ユーザー情報』画面に切り替わります。
その後はF5で何度リロードしても、『ユーザー情報』画面のままです。
アプリ許可を得ているのだから、最初っから『ユーザー情報』画面になればいいのに・・・と思っているのですが・・・。
また、アプリ許可を得てからブラウザを再起動し、再度アプリにアクセスすると『facebookにログイン』の画面が出てきます。
で、『facebookにログイン』のリンクをクリックすると、『ユーザー情報』画面に切り替わります。
この挙動も前述と同様と考えています。
使用しているブラウザはIE10で、まずPC環境のみでテスト中です。
『appId』と『secret』は変更済み。
『facebook.php』のパスも自分の環境に合わせ変更済みです。
『このコンテンツはフレーム内で表示できません』の問題と、アプリ許可を得ているのに『ユーザー情報』画面の前に『facebookにログイン』がイチイチ表示される問題の2点よろしくお願いします。
質問文を編集しました。詳細はこちら。
質問文を編集しました。詳細はこちら。