2012-01-17 10 views
0

私はこのコードを持っている:Facebookの許可要求、無限のリダイレクトループ

require 'facebook.php'; 

$facebook = new Facebook(array(
'appId' => 'xxxxxxx', 
'secret' => 'yyyyyyy', 
'baseUrl' => 'http://xxx.yyy.zz/', 
'appBaseUrl' => 'http://apps.facebook.com/xxxxxx/', 
'fileUpload' => 'true', 
)); 

$user = $facebook->getUser(); 

$params = array(
    scope => 'publish_stream,user_photos', 
    redirect_uri => 'http://www.facebook.com/xxxxxx?sk=app_123456789' 
    ); 

if ($user){ 
    .... 
} 

$loginUrl = $facebook->getLoginUrl($params); 

if ($user){ 
// nothing 
}else{ 
    echo "<script type=\"text/javascript\">top.location.href = \"".$loginUrl."\";</script>"; 
} 

私の問題は、それが無限ループに入っていること、である...何度もページを再読み込みします。 誰かがこれを解決する手助けをすることはできますか?

ありがとうございました!

答えて

0

問題は、メインロジックがindex.phpではないことでした。すべてを戻したら、リダイレクトが停止しました。

0

私は問題があなたのredirect_uriだと思います。代わりに、あなたのURL(www.yourdomain.com/app/index.php)への実際のパスを定義しようとすると、FacebookはそのURLにPOST(コードを含む)を送信し、それをアプリデータまたは署名付きで渡すことはありませんあなたのiFrameアプリケーションにリクエストしてください。

+0

私がAPPのホスティングURLに変更した場合、埋め込み済みのFacebookページ(iFrame) – VORiAND

+0

を残して、 'top.location.href'を' document.location.href'に置き換えるか、 redirect_uriをあなたのサーバ上の単一のスクリプトページ(fb sdkを初期化したもの、例えばhttp://yourdomain.com/fb_auth.php)に設定して、あなたのタブのURLにリダイレクトしてください。ユーザーは次に認証される必要があります。 –

+0

変更なし:(それを試してみました。redirect_uriはJSのreddirectionを持つ.php(facebook array included)ですが、まだリロードループに入ります。 – VORiAND

関連する問題