Facebook PHP SDK 3.1.1无限循环

时间:2012-04-05 10:49:26

标签: php facebook sdk

我有以下代码:

$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,因此空($ fb_sess)始终为true,因此重定向到登录URL会重复无效。我的应用程序似乎已正确配置,我正在使用最新的PHP SDK。任何解决这个问题的线索,或者至少了解发生了什么?

2 个答案:

答案 0 :(得分:0)

您缺少redirect_uri参数。   添加redirect_uri

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

因此,这将在登录后确认只有用户返回页面。

答案 1 :(得分: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

此示例中的问题是应用程序处于沙盒模式。