2

私は次のコードを持っています:

$facebook = new Facebook(array('appId' => $FB_APP_ID,
                             'secret' => $FB_APP_KEY,
                             'cookie' => true));
$fb_sess = $facebook->getUser();

if (empty($fb_sess)) {

  $url = $facebook->getLoginUrl(array('response_type'=>'token',
                                        'scope' => 'email'));
  header("Location: $url");

}

$me = $facebook->api('/me');
...

問題は、$fb_sess が常に 0 であるため、empty($fb_sess) が常に true であり、ログイン URL へのリダイレクトが際限なく繰り返されることです。私のアプリは正しく構成されているようで、最新の PHP SDK を使用しています。それを修正する手がかり、または少なくとも何が起こっているのかを知る手がかりはありますか?

4

2 に答える 2

0

redirect_uri パラメータがありません。redirect_uri を追加

$params = array(
'scope' => 'email',
     'response_type'=>'token',
'redirect_uri' => 'http url after login',
);

したがって、これはログイン後にユーザーのみがページに返されることを確認します。

于 2012-04-05T11:07:14.250 に答える
0

この質問は古いと思いますが、誰かがグーグルからここに来た場合に備えて答えます(私がしたように)。

まず、次の行をコメントアウトします。

header("Location: $url");

次のように置き換えます。

echo "the user appears to be empty try to <a href=".$url.">login</a>";

このようにして、問題があるかどうかを確認する機会が得られ、ユーザーが無限のリダイレクト ループで迷子になることはありません。ほとんどの場合、エラー メッセージは URL に追加されます。次のようになります。

error_code=901&error_message=This+app+is+in+sandbox+mode.++Edit+the+app+configuration+at+http%3A%2F%2Fdevelopers.facebook.com%2Fapps+to+make+the+app+publicly+visible

この例の問題は、アプリがサンドボックス モードになっていることです。

于 2013-10-22T19:54:14.610 に答える