Php Facebook登录问题

Php Facebook登录问题,php,facebook,sdk,login,Php,Facebook,Sdk,Login,我在我的网站上使用codeigniter,我使用facebook登录,但我有一个问题。 ->当我尝试我的普通codeigniter项目时,getUser不返回任何数据。但是,在与我的项目无关的新文件夹中,我尝试从来自facebook sdk的example.php登录,它运行良好 我已经检查了所有内容(自动加载、配置等) 我想我的问题是关于会议 谢谢您的帮助。我建议您使用新版本的。我在版本3.0.1中也遇到了同样的问题,这就是为什么我使用previews版本2.1.2,它工作得很好 不幸的是,我

我在我的网站上使用codeigniter,我使用facebook登录,但我有一个问题。 ->当我尝试我的普通codeigniter项目时,getUser不返回任何数据。但是,在与我的项目无关的新文件夹中,我尝试从来自facebook sdk的example.php登录,它运行良好

我已经检查了所有内容(自动加载、配置等) 我想我的问题是关于会议


谢谢您的帮助。

我建议您使用新版本的。我在版本3.0.1中也遇到了同样的问题,这就是为什么我使用previews版本2.1.2,它工作得很好

不幸的是,我没有时间使用新版本(3.0.1),但版本2.1.2有一个非常简单的示例:

配置

/* application/config/autoload.php */
$autoload['libraries'] = array('template', 'session', 'facebook');
图书馆

/* application/libraries/Facebook.php */
require_once("Facebook/2.1.2/facebook.php");
class CI_Facebook extends Facebook {}
模板

/* application/views/template.php */
$facebook = new Facebook(array(
  'appId' => 'xxxxxxxxxxxxxx',
  'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  'cookie' => true
));

$session = $facebook->getSession();

$me = null;
// Session based API call.
if ($session) {
  try {
    $uid = $facebook->getUser();
    $me = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
  }
}

// login or logout url will be needed depending on current user state.
if ($me) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl();
}
?>

<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
    FB.init({
      appId   : '<?php echo $facebook->getAppId(); ?>',
      session : <?php echo json_encode($session); ?>, 
      cookie  : true,
      xfbml   : true
    });

    // whenever the user logs in, we refresh the page
    FB.Event.subscribe('auth.login', function() {
      window.location.reload();
    });
  };

  (function() {
    var e = document.createElement('script');
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
    e.async = true;
    document.getElementById('fb-root').appendChild(e);
  }());
  </script>
/*应用程序/views/template.php*/
$facebook=新的facebook(数组)(
“appId”=>“XXXXXXXXXXXXX”,
“机密”=>“XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”,
“cookie”=>true
));
$session=$facebook->getSession();
$me=null;
//基于会话的API调用。
如果($会议){
试一试{
$uid=$facebook->getUser();
$me=$facebook->api('/me');
}捕获(FacebookApiException$e){
错误日志($e);
}
}
//根据当前用户状态,需要登录或注销url。
如果($我){
$logoutUrl=$facebook->getLogoutUrl();
}否则{
$loginUrl=$facebook->getLoginUrl();
}
?>
window.fbAsyninit=函数(){
FB.init({
appId:“”,
会议:,
曲奇:是的,
xfbml:对
});
//每当用户登录时,我们都会刷新页面
FB.Event.subscribe('auth.login',function()){
window.location.reload();
});
};
(功能(){
var e=document.createElement('script');
e、 src=document.location.protocol+'//connect.facebook.net/en_US/all.js';
e、 异步=真;
document.getElementById('fb-root').appendChild(e);
}());

我建议您使用新版本的。我在版本3.0.1中也遇到了同样的问题,这就是为什么我使用previews版本2.1.2,它工作得很好

不幸的是,我没有时间使用新版本(3.0.1),但版本2.1.2有一个非常简单的示例:

配置

/* application/config/autoload.php */
$autoload['libraries'] = array('template', 'session', 'facebook');
图书馆

/* application/libraries/Facebook.php */
require_once("Facebook/2.1.2/facebook.php");
class CI_Facebook extends Facebook {}
模板

/* application/views/template.php */
$facebook = new Facebook(array(
  'appId' => 'xxxxxxxxxxxxxx',
  'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  'cookie' => true
));

$session = $facebook->getSession();

$me = null;
// Session based API call.
if ($session) {
  try {
    $uid = $facebook->getUser();
    $me = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
  }
}

// login or logout url will be needed depending on current user state.
if ($me) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl();
}
?>

<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
    FB.init({
      appId   : '<?php echo $facebook->getAppId(); ?>',
      session : <?php echo json_encode($session); ?>, 
      cookie  : true,
      xfbml   : true
    });

    // whenever the user logs in, we refresh the page
    FB.Event.subscribe('auth.login', function() {
      window.location.reload();
    });
  };

  (function() {
    var e = document.createElement('script');
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
    e.async = true;
    document.getElementById('fb-root').appendChild(e);
  }());
  </script>
/*应用程序/views/template.php*/
$facebook=新的facebook(数组)(
“appId”=>“XXXXXXXXXXXXX”,
“机密”=>“XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”,
“cookie”=>true
));
$session=$facebook->getSession();
$me=null;
//基于会话的API调用。
如果($会议){
试一试{
$uid=$facebook->getUser();
$me=$facebook->api('/me');
}捕获(FacebookApiException$e){
错误日志($e);
}
}
//根据当前用户状态,需要登录或注销url。
如果($我){
$logoutUrl=$facebook->getLogoutUrl();
}否则{
$loginUrl=$facebook->getLoginUrl();
}
?>
window.fbAsyninit=函数(){
FB.init({
appId:“”,
会议:,
曲奇:是的,
xfbml:对
});
//每当用户登录时,我们都会刷新页面
FB.Event.subscribe('auth.login',function()){
window.location.reload();
});
};
(功能(){
var e=document.createElement('script');
e、 src=document.location.protocol+'//connect.facebook.net/en_US/all.js';
e、 异步=真;
document.getElementById('fb-root').appendChild(e);
}());

问题尚未解决。需要帮助,请尝试在问题中添加有关问题的更多详细信息。示例代码、应用程序设置等问题尚未解决。需要帮助,请尝试在问题中添加有关问题的更多详细信息。示例代码、应用程序设置等。