首先,我下載了Facebook PHP SDK和應用在這裏的第一個答案: Using Facebook PHP-SDK 3.x to register/login user with Codeigniter 2.1.0PHP SDK +代碼點火器
在我的控制器:
我試圖讓用戶:$此 - > facebook->的getUser(); ..如果它是0,我調用另一個函數$ this-> facebook_login(); - 否則我將一些數據保存在數據庫中,例如名稱。
在facebook_login()中,生成了一個登錄URL:$ this-> facebook-> getLoginUrl() - 並傳遞給顯示它的視圖。
到目前爲止,我點擊登錄網址並重定向到Facebook,要求獲得批准和身份驗證等 - 然後將我重定向回「1」頁面。
問題是,getUser返回零。我打印了$ SESSION變量,發現只有fb {appId} _state正在設置。
我試圖創建另一個PHP文件(login.php中)是不是在CI文件夾下面的代碼:
<?php
define('BASEPATH', '');
require_once('application/libraries/facebook.php');
$fb = new Facebook(array('appId'=>'...', 'secret'=>'...'));
$user = $fb->getUser();
if($user == 0){
$login = $fb->getLoginUrl();
echo '<a href="'.$login.'">Login</a>';
} else {
print_r($fb->api('/me'));
}
?>
如果我訪問那麼login.php中訪問該頁面中的「1 「上面 - getUser返回用戶ID,$ _SESSION包含用戶的詳細信息。因此,我想這個問題是CodeIgniter,但我不知道如何解決它。
我搜索並嘗試了幾種解決方案,但這是我能做的最好的。如果可能的話,我不想使用JS SDK。
謝謝
在問題開始處的鏈接中找到的構造函數中,在加載facebook庫之前添加以下內容:parse_str($ _SERVER ['QUERY_STRING'],$ _REQUEST); – GalalAly 2012-04-18 13:59:39
在application/config/config.php中cookie_domain變量是否正確地設置爲您的域名? – 2012-04-19 14:07:28
是的。我想出解決方案並將其作爲評論發佈。謝謝:) – GalalAly 2012-04-23 01:13:11