我无法使用我的Facebook登录应用程序。 它刚刚发生在今天。这是昨天的工作。 URL会不断变化并每秒重新加载。
实施例: 从 http://www.myurl.com/welcome/signInWithFB?code=123123213&state=454545454545454#= 至 http://www.myurl.com/welcome/signInWithFB?code=56565656&state=787878787878#=
并永远改变。
我正在使用codigniter
我的控制器:
public function signInWithFB(){
session_start();
$fb_config = array(
'appId' => 'my id',
'secret' => 'my secret'
);
$this->load->library('facebook', $fb_config);
$user = $this->facebook->getUser();
if ($user) {
try {
$data['user_profile'] = $this->facebook
->api('/me');
$data['friends'] = $this->facebook->api('/me/friends');
$_SESSION['friends']= $data['friends'];
} catch (FacebookApiException $e) {
$user = null;
}
}
if ($user) {
$data['logout_url'] = $this->facebook
->getLogoutUrl();
} else {
$data['login_url'] = $this->facebook
->getLoginUrl(
array(
'scope' => 'email, user_friends'
)
);
}
if(isset($data['user_profile'])){
$_SESSION['id']= $data['user_profile']['id'];
$_SESSION['username']= $data['user_profile']['name'];
$_SESSION['email']= $data['user_profile']['email'];
$_SESSION['avatar'] = $this->dbs->getAvatar($_SESSION['username']);
}
$this->dbs->insertUserFromFB();
$this->load->view('signInWithFB',$data);
}
我的观点:
<?php
if (@$user_profile): ?>
<meta http-equiv="refresh" content="0; url=<?=base_url('welcome/profile');?>" />
<?php else: ?>
<meta http-equiv="refresh" content="0; url=<?=$login_url;?>" />
<?php endif; ?>
Please Wait...
PS。我试图找到解决方案,但它适用于我的每个网络浏览器。(不仅是我发现的IE)
感谢您提前。
答案 0 :(得分:0)
在FB getUser调用之后,添加print_r($user)
并查看其中的内容。您可能有FB配置问题。看起来您的代码可能正在捕获该异常并使$user=null
和您的问题级联起来。在那个问题中,做一个echo $e->getMessage ()
和FB可能会告诉你问题是什么。
哦,你可能必须在print_r / echo行之后立即die()
,这样它就不会一遍又一遍地重新加载。