Php Facebook sdk getLoginUrl()方法不会重定向已登录的用户以授权我的应用
我正在使用Facebook API在我的Php Facebook sdk getLoginUrl()方法不会重定向已登录的用户以授权我的应用,php,facebook,codeigniter,facebook-graph-api,oauth,Php,Facebook,Codeigniter,Facebook Graph Api,Oauth,我正在使用Facebook API在我的codeigniter应用程序上登录Facebook。除了用户已经登录到Facebook但从未授权过我的应用程序外,它似乎工作正常。我将他重定向到getLoginUrl(),这应该让他授权我的应用程序,但这从来没有发生过 我真的很迷路,一直在寻找解决方案,任何帮助都将不胜感激 以下是我在facebook登录时调用的索引函数单击: $data=array( 'redirect_uri' => '/facebookcon
codeigniter
应用程序上登录Facebook。除了用户已经登录到Facebook但从未授权过我的应用程序外,它似乎工作正常。我将他重定向到getLoginUrl()
,这应该让他授权我的应用程序,但这从来没有发生过
我真的很迷路,一直在寻找解决方案,任何帮助都将不胜感激
以下是我在facebook登录时调用的索引函数单击:
$data=array(
'redirect_uri' => '/facebookcontroller/handle_facebook_login/',
'scope' => 'publish_stream,email'
);
redirect($this->fbconnect->getLoginUrl($data));
我的重定向uri
有效,我仔细检查了一下
因此,如果用户已登录,它将尝试将其重定向到getloginurl()
,这将需要用户进行授权,但不会。它直接转到重定向uri
您是否检查用户
// Init the Facebook SDK
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true
));
// Get the current user
$user = $facebook->getUser();
if (!$user) {
$loginUrl = $facebook->getLoginUrl(array(
'scope' => $scope,
'redirect_uri' => $app_url,
));
echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
}
else{
$user_profile = $facebook->api('/me');
// STUFF
}
//初始化Facebook SDK
$facebook=新的facebook(数组)(
“appId”=>$app\u id,
'secret'=>$app\u secret,
“cookie”=>true
));
//获取当前用户
$user=$facebook->getUser();
如果(!$user){
$loginUrl=$facebook->getLoginUrl(数组)(
'scope'=>$scope,
'重定向\u uri'=>$app\u url,
));
echo“top.location.href='$loginUrl';”;
}
否则{
$user_profile=$facebook->api('/me');
//东西
}
。你还试了什么?为我们发布一些代码:)好的,我发布了我的contoller的索引方法,我正在我的facebook帐户上测试,我之前已经授权了它,但是从我的数据库中删除了我所有的facebook信息。我试图请求用户信息,但它抛出了一个错误:无效或找不到证书颁发机构,使用捆绑信息值得一提的是,当它从facebook返回时,会带来两个变量:状态和代码。也许我需要对它做进一步的处理?好的。也许我想我知道怎么了。您已将自己的帐户授权给应用程序。你需要取消授权。facebook会给你一个访问令牌并自动设置。重定向后,您应该能够访问$facebook->api('/me');比如:echo“id:”$用户['id'];或$access_token=$facebook->getAccessToken();尝试清除cookie,然后用auth和其他东西重新开始。否则试着做他在另一个问题上所做的