我有以下代码:
$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。任何解决这个问题的线索,或者至少了解发生了什么?
答案 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
此示例中的问题是应用程序处于沙盒模式。