2012-06-19 31 views
0

我正在使用Facebook API登錄用戶的網站上工作,但我對Facebook API本身有些莫名其妙的麻煩。我認爲這是使用CodeIgniter的結果。Facebook API的作品,但不是Codeigniter?

我添加了一個不使用Codeigniter的PHP腳本,它可以連接。它看起來像這樣:

require_once("application/libraries/Facebook/facebook.php"); 

$facebook = new Facebook(array(
     'appId' => 'appid-removed-for-question', 
     'secret' => 'secret-removed-for-question', 
)); 

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

這將從Facebook返回適當的UID。

當我嘗試這個用笨庫做的UID始終回來爲0.這是庫代碼:

include(APPPATH.'libraries/Facebook/facebook.php'); 

class Fb_connect extends Facebook{ 

    public $user; 

    public function __construct() 
    { 
     $CI =& get_instance(); 
     $CI->config->load("facebook",TRUE); 
     $config = $CI->config->item('facebook'); 
     parent::__construct($config); 

     $this->user = $this->getUser(); 
     echo $this->user; 
    } 
} 

我有雙重和三重檢查我的appid和祕密配置文件,甚至在這裏回顯它以確保它正確地通過陣列,但仍然沒有。對於UID,$this->user;經常返回0。我錯過了什麼?

我剛剛看到這個question,它談到uri_protocol是問題,但我必須設置$config['uri_protocol'] = 'QUERY_STRING';才能讓我的mod_rewrite腳本在第一位工作,這讓我想知道它是否是同一個問題。有什麼建議?

回答

0

這個問題的答案我聯繫的問題實際上固定我的問題:

$config['uri_protocol'] = 
    (isset($_SERVER['HTTP_REFERER']) && 
    strpos($_SERVER['HTTP_REFERER'], 'apps.facebook.com') !== false) ? 
     "PATH_INFO" : "REQUEST_URI"; 
0

使用這個.. require_once($ _ SERVER [ 'DOCUMENT_ROOT'] 「/」 $這個 - >配置。 - >項( 'app_folder_path') 「應用/庫/實/ facebook.php」);

確保你已經在你的config.php文件中設置了app_folder_path配置變量。

+0

是的,它實際上沒有加載Facebook API的問題 - 正如我在下面的回答中所述,如果引用者是Facebook,則將uri_protocol更改爲「PATH_INFO」,否則更改爲「REQUEST_URI」。 謝謝你的答案,無論如何! – ametren

相關問題