3

私はFacebook 用のPHP-SDKを使用しており、ローカルホストで動作する例を取得しました。ただし、サーバー上でスクリプトを作成する場合、スクリプトは、スクリプトから facebook へのリダイレクトとその逆のリダイレクトで非常に忙しくなります。(エラー: Fout 310 (net::ERR_TOO_MANY_REDIRECTS):)

もっと多くの人がこの問題を抱えているようです (ここここここここ)。とはいえ、何がうまくいかないのか、明確な答えは見つかりません。

Facebook にリダイレクトします (応答 302):

https://www.facebook.com/dialog/oauth?client_id=166958180001271&redirect_uri=http%3A%2F%2Fdomain.com%2Fscripts%2FGateway.php%3Faction%3DAllowFacebookAccessAction%26app%3D14&state=0dbc178a375595da4751265a7147c01e#_=_

mydomain にリダイレクトします (応答 302):

http://domain.com/scripts/Gateway.php?action=AllowFacebookAccessAction&app=14&state=0dbc178a375595da4751265a7147c01e&code=AQD-dTeyns0OWpGb_PzfHxUy2iRmpc1XgP6Q24DDRX8MiRTE10lV-b-aSNIlOLVHk576vRs3H8Pf9n0kGwU827MrkzUCUoQGFGEQBkkOJnCy9zb6hZs7TVBsKL2iSuZIhDjLsCOPeKy3zfb37Q6LGhtMICCdB_IQAvU0uRvAkSAX8tdVJ65PEv8imx-2yvLaMoGJleZwKogh7m03vlhV8hJk#_=_

この問題を引き起こすコードの一部

...            
    $facebook = new FacebookApi(array(
            'appId' => $app->getProperty('apiKey'),
            'secret' => $app->getProperty('secretKey'),
        ));
    $user = $facebook->getUser();
    if (!$user) {    
        header('location: ' . $facebook->getLoginUrl());
        exit;
    }
...

アップデート:

私はそれがサーバー設定であることを除外しました。そのサーバーで元のサンプル スクリプトを実行できました。

4

1 に答える 1

1

secretアプリの設定でアプリを再確認してくださいhttps://developers.facebook.com/appsそうでない場合は、セッションをダンプします

<?php print_r($_SESSION); ?>

そして返されたトークンをリントしますhttps://developers.facebook.com/tools/debug

トークンが破損しているか、秘密であることを確認してください。

そうでない場合は、表示されていないコードにあります。

于 2012-11-11T23:21:28.047 に答える