2011-06-23 12 views
0

私のアプリケーションのいくつかの時点で、私はiframeを使用しています。このiframeでは、Facebookのものが役に立つかもしれません。そのために、私はグラフAPIをたくさん使います。 問題:誰かがFacebookにログインしていない、またはまだ自分のアプリケーションを許可していない場合、「facebookで接続」ボタンをクリックするように求められます。しかし、クリックすると、iframeが破棄され、トップページがFacebookのログインページに置き換えられます。最終的にトップページは前のiframe URLにリダイレクトされますが、元の親ページは永久に失われます。 これはFB接続の意図された動作ですか? 回避する方法やハックする方法はありますか? (iframeの代わりにポップアップを使用しているかもしれませんが、iframeよりも醜い)と思われます。iframe内のFacebookログイン(FB外)

I現在、ここではPHP SDKに

どうもありがとう

+0

セキュリティメカニズムとしてのFacebookのログインフレーム。 Facebookのログインウィンドウを表示するには、フルページでもポップアップでも、iframeには表示されません – Yuliy

答えて

2

を使用していますが、ポップアップを開くためのソリューションです:

https://developers.facebook.com/docs/reference/javascript/FB.login/

次をトリガ素子を有することによりクリックイベントのコード:

FB.login(callback); 

あなたのアプリにログイン/認証するためのフォームがポップアップ表示されます。

したがって、(廃止予定の)FBML代替手段を使用しないでください。

iframe要素については、その達成方法を見つけることはできません。その理由は、facebookのスクリプトがwindow.top.locationをfacebookドメイン上にあるかどうかチェックするからです。

+0

私はそれを調査します。私はFBMLを使用していません。すべての呼び出しはPHPのcURL POSTによって行われます。このようなポップアップログインコールでは、top.windowページにリダイレクトURLが再ロードされると思います。私は間違っているかもしれませんが、チップのおかげで – Cystack

+0

うわー!私は言及してもいい? "透過的な"ログインを実現する唯一の方法は、実際にはjavascriptを使用することです。 – dader

+0

つまり、ユーザーが既にFBにログインしている場合は、PHPでトークンを捕捉するだけです。問題は起こらないときに起こります。これはあなたのソリューションがうまくいく理由です) – Cystack

関連する問題