2009-12-08 59 views
0

我想開發一個使用Facebook連接的外部網站,而不是自己的登錄和註冊過程。PHP:Facebook連接認證問題

在第一頁上(的index.php)我有登錄按鈕下面的代碼:

<fb:login-button v="2" size="large" autologoutlink="false" onlogin="window.location='/index.php'">Connect with Facebook</fb:login-button> 

對於認證,我用this library for PHP

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
<meta http-equiv="content-language" content="de" /> 
<meta http-equiv="content-script-type" content="text/javascript" /> 
<meta http-equiv="content-style-type" content="text/css" /> 
</head> 
<body> 
<script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/de_DE" type="text/javascript"></script><script type="text/javascript">FB.init("XYZ");</script> 
<?php 
error_reporting(E_ALL); 
include_once '/XYZ/facebook.php'; 
include_once 'lib.php'; 
include_once 'config.php'; 
$facebook = new Facebook($api_key, $secret); 
$user = $facebook->require_login(); 
$loggedin = FALSE; 
if (isset($user)) { 
    if ($user != '') { 
     echo '<p>Hello <fb:name firstnameonly="true" uid="'.$user.'" useyou="false" /></p>'; 
     echo '<p><a href="#" onclick="javascript:FB.Connect.logoutAndRedirect(\'/\'); return false">Log out</a></p>'; 
     $loggedin = TRUE; 
    } 
} 
if ($loggedin == FALSE) { 
    echo '<p><fb:login-button onlogin="window.location=\'/\'"></fb:login-button></p>'; 
} 
?> 
</body> 
</html> 

不幸的是,它還沒有工作。這裏有什麼問題?

當我想訪問此頁面時,我被重定向到http://www.facebook.com/login.php?api_key=XYZ&v=1.0&next=XYZ,在那裏我必須登錄。然後,登錄到Facebook後,我再次被重定向。這一次,我去https://login.facebook.com/login.php?auth_token=XYZ

回答

1

嘗試

$user = $facebook->get_loggedin_user(); 

,而不是

$user = $facebook->require_login(); 

require_login()會迫使你facebook的login.php中

+0

哦那麼容易!非常感謝你 :) – caw 2009-12-08 19:55:29