2012-12-16 239 views
0

我遇到過類似的問題,但我還沒有找到解決方案。我已經將我的代碼分解成最簡單的形式,但仍然努力讓用戶登錄。 登錄/接受權限後,redirect_uri沒有正確重定向(通過url欄中的'狀態'消息返回)。登錄Facebook PHP API問題

<?php 
session_start(); 
require_once('sdk/src/facebook.php'); 
require_once('AppInfo.php'); 


$config = array(
    'appId' => '#####', 
    'secret' => '########', 
    'cookie' => false 
); 
$fb = new Facebook($config); 

$user = $fb->getUser(); 
?> 
<html> 
<head> 
    <title>Hello Facebook</title> 
</head> 
<body> 
<?php 
if (!$user) { 
    $params = array(
     'scope' => 'read_stream', 
     'redirect_uri' => 'http://localhost:8000/' 
     ); 

     echo '<a href="'. $fb->getLoginUrl($params).'">Login</a>'; 
} 
else { 
?> 

<p> Hello World! </p> 
<?php echo 'hello world!'; 
     echo 'value of user: '. $user; 
     $params = array('next' => 'http://localhost:8000' 
         ); 
     echo '<a href="'.$fb->getLogoutUrl().'">Logout</a>'; 
?> 
</body> 
</html> 

開發人員網站url中的設置是相同的(http:// localhost:8000 /)。 沙箱模式已禁用。 ApplD和AppSecret絕對正確。 已嘗試在Chrome,Firefox,IE與幾個FB accs。 $用戶永遠不會成爲真實的。

+0

點擊「登錄」鏈接會發生什麼? – jamis0n

回答

0

您使用的是最新版本的Facebook PHP SDK?有幾個版本可供使用,其中許多是v2。確保你的項目有一個v3下載。

要確保您的應用在Facebook上正確配置,請使用Facebook gitHub上的這個example.php進行測試。

+0

嗨,感謝您的幫助,我運行了示例腳本,它指出了我真正的問題。問題在於curl命令,解決方案是添加$ opts [CURLOPT_SSL_VERIFYPEER] = false;在curl_setopt_array($ ch,$ opts)之前的935行的base_facebook.php中; – Mark