簡體   English   中英

帶有Codeigniter的Facebook登錄集成未返回用戶個人資料數據

[英]facebook login integration with codeigniter not returning user profile data

這是我基於視頻教程編寫的代碼。 登錄后如何獲取用戶個人資料數據? 我什么都沒有。

//控制器

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; ?>

只需使用$_REQUEST += $_GET; getUser()之前

$_REQUEST += $_GET; 
$user = $facebook->getUser();

注意事項

  1. Facebook PHP SDK使用$_REQUEST變量,而CodeIgniter出於安全原因清除$_REQUEST變量。
  2. 為了解決這個問題,您可以在調用getUser()之前將$_GET的內容復制到$_REQUEST

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM