facebook登录与codeigniter的集成没有返回用户个人资料数据

时间:2015-07-16 04:04:40

标签: php codeigniter facebook-php-sdk

这是我基于视频教程的代码。如何在登录后获取用户个人资料数据?我没有得到任何。

//控制器

public function signin()
{
    $this->load->library('facebook');
    //   parse_str( $_SERVER['QUERY_STRING'], $_REQUEST );
    $user = $this->facebook->getUser();

    if($user)
    {
        try{
            $data['user_profile']=$this->facebook->api('/me');
        }
        catch(FacebookApiException $e)
        {
            $user = null;
        }
    }
    else
    {
        $this->facebook->destroySession();
    }        

    if($user)
    {
        $data['logout_url']= site_url('front_con/logout');  
    }
    else
    {
        $data['login_url']= $this->facebook->getLoginUrl( array('redirect_uri'=>site_url('front_con/signin'),
        'scope'=>array("email")));
    }
    // echo "kkksdf";
    $this->load->view('check',$data);
}


public function logout()
{  
    $this->load->library('facebook');
    $this->facebook->destroySession();
    redirect('front_con/signin');
}

//这是我的观点

<?php if(@$user_profile): ?>
<?=$user_profile['name']?>
<a href="<?= $logout_url; ?>">Click here to logout</a>
<?php var_dump($user_profile);?>
<?php else:?>
<a href="<?= $login_url; ?>">Click here to login</a>
<?php endif; ?>

1 个答案:

答案 0 :(得分:1)

只需在$_REQUEST += $_GET;

之前使用getUser()即可
$_REQUEST += $_GET; 
$user = $facebook->getUser();

注意

  1. Facebook PHP SDK在CodeIgniter时使用$_REQUEST变量 出于安全原因清除$_REQUEST变量。
  2. 要解决此问题,您可以将$_GET的内容复制到 在致电$_REQUEST之前getUser()