本地运行时的Facebook重定向循环
我正在做一个当地的Facebook项目。但当我转到localhost时,他每次都开始重定向到localhost/?code=xxxx(xxxx是很长的随机字符) 我的代码是:本地运行时的Facebook重定向循环,facebook,facebook-php-sdk,Facebook,Facebook Php Sdk,我正在做一个当地的Facebook项目。但当我转到localhost时,他每次都开始重定向到localhost/?code=xxxx(xxxx是很长的随机字符) 我的代码是: require_once('sdk/src/facebook.php'); $facebook = new Facebook(array( 'appId' => 'MY_APP_ID', 'secret' => 'MY_APP_SECRET', 'sharedSession' => tru
require_once('sdk/src/facebook.php');
$facebook = new Facebook(array(
'appId' => 'MY_APP_ID',
'secret' => 'MY_APP_SECRET',
'sharedSession' => true,
'trustForwarded' => true,
'cookie' => true
));
$user_id = $facebook->getUser();
if ($user_id) {
try {
// Fetch the viewer's basic information
$basic = $facebook->api('/me','GET');
} catch (FacebookApiException $e) {
if (!$facebook->getUser()) {
//header('Location: '. AppInfo::getUrl($_SERVER['REQUEST_URI']));
$user_id = null;
}
}
}
if(!$user_id) {
$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'email,publish_actions'
));
echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
exit();
}
...
require_once('sdk/src/facebook.php');
$facebook=新的facebook(数组)(
“应用程序ID”=>“我的应用程序ID”,
“机密”=>“我的应用程序机密”,
“sharedSession”=>true,
“trustForwarded”=>正确,
“cookie”=>true
));
$user_id=$facebook->getUser();
if($user\u id){
试一试{
//获取查看者的基本信息
$basic=$facebook->api('/me','GET');
}捕获(FacebookApiException$e){
如果(!$facebook->getUser()){
//标题($Location:'.AppInfo::getUrl($\u SERVER['REQUEST\u URI']);
$user\u id=null;
}
}
}
如果(!$user\u id){
$loginUrl=$facebook->getLoginUrl(数组)(
'范围'=>'电子邮件,发布操作'
));
echo“top.location.href='$loginUrl';”;
退出();
}
...
我的应用程序设置:
提前感谢。可能的问题是,即使在用户登录后,您的应用程序仍返回
$user\u id
的0
,导致JavaScript重定向再次发生,从而导致它永远循环
问题可能是多种情况之一,但请确保
code
GET变量没有通过.htaccess
文件或其他方式从URL中剥离。其次,查看base\u facebook.php
文件以更改检查code
的方式。可能的问题是,即使在用户登录后,您的应用程序仍会为$user\u id
返回0
,导致JavaScript重定向再次发生,导致它永远循环
问题可能是多种情况之一,但请确保
code
GET变量没有通过.htaccess
文件或其他方式从URL中剥离。其次,查看base\u facebook.php
文件以更改检查code
的方式。这可能表明您的会话丢失–检查您的浏览器是否正确接受本地主机的php会话cookie。@CBroe My Chrome浏览器不接受cookies,但Firefox接受cookies。不幸的是,重定向循环正在我所有的浏览器上发生。我能做什么?在初始化SDK时,如果您真的不需要,也可以尝试删除sharedSession
和trustForwarded
参数。这可能表明您的会话丢失–检查您的浏览器是否正确接受本地主机的PHP会话cookies。@CBroe My Chrome浏览器不接受cookies,但Firefox确实如此。不幸的是,重定向循环正在我所有的浏览器上发生。我能做什么?如果您真的不需要,也可以在初始化SDK时尝试删除sharedSession
和trustForwarded
参数。