2011-12-31 31 views
0

我使用Facebook的文件,登錄到我創建只是讓人們可以我工作的網站上通過Facebook登錄的應用程序。我在代碼點火器工作,我能夠返回用戶信息和一切。我讓它工作沒問題。函數不返回用戶()

但是當我去到開發商的一邊,因爲我想在本地測試,並改變了網站的網址我得到一個錯誤的東西我不記得我認爲錯誤代碼爲191我可能是錯的。

然後我覺得很好,沒有工作,所以我改回它,現在我無法在登錄時檢索任何用戶數據。沒有錯誤被拋出。來自Facebook文件的功能正常工作,但我似乎無法再獲取用戶信息。

我有,我用它來抓住從登錄該信息的模型。

class Facebook_model extends CI_Model { 

function __construct() { 
    parent::__construct(); 

    $config = array(
     'appId' => 'XXXX', 
     'secret' => 'XXXXX', 
     'fileUpload' => true 
    ); 

    $this->load->library('facebook', $config); 

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


    $profile = null; 

    if($user) 
    { 
     try { 
      // Proceed knowing you have a logged in user who's authenticated. 
      $profile = $this->facebook->api('/me?fields=id,name,link,email'); 
     } catch (FacebookApiException $e) { 
      error_log($e); 
      $user = null; 

     } 
    } 

    $login_params = array(
     'redirect_uri' => (base_url() . 'test'), 
     'scope'  => 'email' 
    ); 

    $fb_data = array(
        'me' => $profile, 
        'uid' => $user, 
        'loginUrl' => $this->facebook->getLoginUrl($login_params), 
        'logoutUrl' => $this->facebook->getLogoutUrl() 
       ); 



    $this->session->set_userdata('fb_data', $fb_data); 
} 
} 

所以,正確的($user = $this->facebook->getUser();)後,我做了一個測試,並呼應$user,並得到。之前我沒有。

的一個變化我做是在$login_params變種。我將redirect_uri更改爲localhost由於顯而易見的原因,該功能無效,然後我將其更改回現在顯示的內容。

感謝

+0

這是超級沮喪。我從字面上看不出代碼有什麼問題。我檢查了Facebook上的調試器,我沒有收到任何錯誤。 – JoeMoe1984 2012-01-04 18:34:38

回答

0

的getUser僅當用戶在您的應用程序/ Web登錄返回用戶信息(http://developers.facebook.com/docs/reference/php/facebook-getUser/)

所以,你應該在處理與用戶沒有登錄的posibility模型(0),並讓他登錄BUTTOM。此外,如果用戶爲0,則應重置會話信息。