Php fb认证的无止境循环
试图拉出简单的身份验证,给了我无尽的循环 最奇怪的是,当使用混合js和PHPAPI时,它可以工作Php fb认证的无止境循环,php,facebook,Php,Facebook,试图拉出简单的身份验证,给了我无尽的循环 最奇怪的是,当使用混合js和PHPAPI时,它可以工作 <?Php //uses the PHP SDK. Download from https://github.com/facebook/php-sdk require 'src/facebook.php'; $facebook = new Facebook(array( 'appId' => '306597542762982', 'secret' => '8
<?Php
//uses the PHP SDK. Download from https://github.com/facebook/php-sdk
require 'src/facebook.php';
$facebook = new Facebook(array(
'appId' => '306597542762982',
'secret' => '88XXXXXXf1',
));
if(!$facebook->getUser())
header("location: ".$facebook->getLoginUrl ());
var_dump($facebook->getUser());
编辑:好的,这不是问题的解决方案,抱歉
据我所知,头已经设置好了,但是脚本没有停止。想象一个不同的头(而不是位置
),如果脚本在那时停止,它将是不好的。因此,请尝试以下方法:
if(!$facebook->getUser()) {
header("location: ".$facebook->getLoginUrl ());
die();
}
HTH在进行任何操作之前,请确保您拥有最新的SDK。我在使用过时的SDK时看到过这种行为。代码中的注释指向不推荐使用的版本。确保你的代码是源代码,而不是评论中所说的源代码
此外,您正在跳过可以在中看到的几个步骤。试着像他们那样做
$user = $facebook->getUser();
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
然后
if (!$user) {
$loginUrl = $facebook->getLoginUrl();
header("Location: " . $loginUrl);
}
我仍然不确定标题是否有效,因此您可能还想尝试使用javascript重定向:
echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
echo“top.location.href='$loginUrl';”;
你能粘贴$facebook->getUser()的var\u转储结果吗?好的。你能粘贴你在$facebook->getLoginUrl()中得到的东西吗?string(145)”“你是在应用程序画布上还是在粉丝页面选项卡上?OMG。恐怕。。。在它的哪一部分起作用之前,您是否尝试过删除所有空白(看起来您有一个空白)?你只是使用了我提供的代码,还是得到了最新的SDK?好吧,为什么我得到了一个答案的赞成票,但这并没有回答问题?:)很难说它对OP是否正确,但是如果你在header()之后有事情发生,那么它可以为我工作