我正在使用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腳本在第一位工作,這讓我想知道它是否是同一個問題。有什麼建議?
是的,它實際上沒有加載Facebook API的問題 - 正如我在下面的回答中所述,如果引用者是Facebook,則將uri_protocol更改爲「PATH_INFO」,否則更改爲「REQUEST_URI」。 謝謝你的答案,無論如何! – ametren