Codeigniter登录与facebook返回userId 0,登录成功后重定向回到我身边

时间:2012-09-14 03:14:11

标签: php codeigniter facebook-login

我开发了带有codeigniter的登录Facebook应用程序(Facebook SDK),首先,我在当地做了。

运行良好,登录成功时,facebook通过redirect_uri重定向到我的侧控制器,并让userId查询用户登录的信息。

但是,当我将此代码上传到服务器端时,redirect_uri正常工作,但是我得到了userId的0,所以,如果userId为0,我就无法查询记录用户的数据。

我的问题是,为什么userId在登录成功后返回0?

代码控制器:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

    class Setting extends CI_Controller {

       public function __construct()
       {   

          $CI = & get_instance();
          $CI->config->load("facebook",TRUE);
          $config = $CI->config->item('facebook');
          $this->load->library('facebook', $config);

       }
       public function index() 
       {
             if($this->form_validation->run() == FALSE){

                 $this->acc_login();
             }else {
                 redirect('check_session', 'refresh');  
             }
       }

       public function acc_login()
       {
             $user = $this->facebook->getUser();

             if($user) {

             try {              
                  $user_info = $this->facebook->api('/me');
                  redirect(base_url());             
             } catch(FacebookApiException $e) {
                  echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>';
                  $user = null;
             }
             } else {
                    $param = array('scope' => 'email,read_stream','redirect_uri' => $my_url);
                    $data['getURLLogin'] = "<a href=\"".$this->facebook->getLoginUrl($param)."\"><img src=\"".base_url()."public/frontend/images/login-fb.png\" width=\"155\" height=\"25\" /></a>";

             }
       }

    }

?>

1 个答案:

答案 0 :(得分:0)

尝试添加

parse_str( $_SERVER['QUERY_STRING'], $_REQUEST );

$user = $this->facebook->getUser();

<强>更新

FB将参数从“redirect_url”更改为“next”从v2更改为v3,并且已经记录在案。尝试“下一步”,应该适合你。

source