2012-06-05 77 views
1

我正在嘗試使用codeigniter連接Facebook。如果我連接拳頭時間,那麼我可以看到權限彈出,但在我授權許可後,我得到多個重定向循環錯誤。Facebook登錄後在循環中使用codeigniter重定向

如果我已經登錄和授權的網站,那麼爲什麼它沒有得到uid。

我給網站的URL在Facebook的:http://mysite.com/

和我的重定向uri爲http://mysite.com/facebook/

我已經在我的庫文件夾中添加這些文件。

library/fb_connect.php 
library/facebook/facebook.php 
library/facebook/base_facebook.php 
library/facebook/fb_ca_chain_bundel.crt 

facebook文件夾中的最後3個文件是facebook SDK文件。

這裏是代碼我fb_connect.php

<?php 
include(APPPATH.'libraries/facebook/facebook.php'); 

class Fb_connect { 


function connect(){ 


$facebook = new Facebook(array(
    'appId' => 'XXXXXXX', 
    'secret' => 'XXXXXXXXXXXXXX', 
    'cookie' => true, 
)); 

    //Get User ID 
    $user=$facebook->getUser(); 

    if(!$user){ 
    $loginUrl=$facebook->getLoginUrl(array(
    'scope'   => 'email,publish_stream,user_birthday,user_location', 
    'redirect_uri' => 'http://localhost/beta/facebook/', 
    'display'=> 'popup' 
    )); 

    redirect($loginUrl')"; 
    exit(); 


} else { 
$user_profile = $facebook->api('/me'); 

print_r($user_profile); 

} 
?> 

這裏是我的控制器代碼:

function facebook(){ 

    $this->load->library('fb_connect'); 
    $user_data=$this->fb_connect->connect(); 

} 

回答

0

有幾件事情;

1.You說: 「我的重定向uri爲http://mysite.com/facebook/」 - 但在你的代碼:

'redirect_uri' => 'http://localhost/beta/facebook/', 

應該是:

'redirect_uri' => 'http://mysite.com/facebook/', 

2.You說:「我有給網站的網址中Facebook:http://mysite.com/「 - 您需要在您的Facebook API中專門設置返回網址 - 也應該是」http://mysite.com/facebook「

3.您說您的重定向是」http:// mysit e.com/facebook/「 - 您是否將此設置爲路線?因爲通常它應該是 「http://mysite.com/mycontroller/facebook/」

4.You有一個錯字(如果這是一個複製粘貼+):

redirect($loginUrl')"; 

應該

redirect($loginUrl); 
+0

@Theshift ..首先感謝您的回答。關於錯字,這些只是錯誤,因爲我修改了一些代碼以使讀者更容易。所以我改變了重定向url,api和密鑰,原始代碼沒有錯字。因此第1和第4點不存在。我試過你第二點,但同樣的重定向。並且你的第四點的答案是肯定的我設置路線。 http://site.com/auth/facebook至site.com/facebook。 – Emmul

+0

只需確認您在活網站上嘗試此操作而不是「本地主機」? – Laurence