2015-01-01 77 views
1

这里是我的代码:Facebook登录SDK PHP 4.0的错误登录

<?php 

session_start(); 

require_once('Facebook/FacebookSession.php');  
require_once('Facebook/FacebookRedirectLoginHelper.php');  
require_once('Facebook/FacebookRequest.php');  
require_once('Facebook/FacebookResponse.php');  
require_once('Facebook/FacebookSDKException.php');  
require_once('Facebook/FacebookRequestException.php');  
require_once('Facebook/FacebookAuthorizationException.php');  
require_once('Facebook/GraphObject.php');  
require_once('Facebook/GraphUser.php');  
require_once('Facebook/GraphSessionInfo.php'); 

use Facebook\FacebookSession;  
use Facebook\FacebookRedirectLoginHelper;  
use Facebook\FacebookRequest;  
use Facebook\FacebookResponse;  
use Facebook\FacebookSDKException;  
use Facebook\FacebookRequestException;  
use Facebook\FacebookAuthorizationException;  
use Facebook\GraphObject;  
use Facebook\GraphUser; 
use Facebook\GraphSessionInfo; 

$id = 'xxxxx'; 

$secret = 'xxxxx'; 

FacebookSession::setDefaultApplication($id, $secret); 

$helper = new FacebookRedirectLoginHelper('http://da-404.hol.es/FD/index.php'); 

try{ 

    $session = $helper->getSessionFromRedirect(); 

}catch(Exception $e){ 

} 

if(isset($_SESSION['token'])){ 

    $session = new FacebookSession($_SESSION['token']); 

    try{ 

     $session->Validate($id, $secret); 

    }catch(FacebookAuthorizationException $e){ 

     $session = ''; 
    } 

} 
if(isset($session)){ 

    $_SESSION['token'] = $session->getToken(); 

    echo "Login Successful<br>"; 

    $request = new FacebookRequest($session, 'GET', '/me'); 

    $response = $request->execute(); 

    $graph = $response->getGraphObject(GraphUser::className()); 

    echo "Hi " . $graph->getName(); 
} 

else{ 

echo "<a href = " . $helper->getLoginUrl() . ">Login With Facebook</a>"; 

} 

即使我登录与FB,我的FB名不会出现。

iamge:http://prntscr.com/5n6iud

我的名字不会出现,甚至连登录令牌秀...

什么问题?

回答

0

您确定自己的php 错误报告已打开吗?

原因当我执行你的代码与我的应用程序的细节我得到这个致命的错误,说它缺少几个类。

Fatal error: Class 'Facebook\Entities\AccessToken' not found in [...location] 

您需要的行use Facebook\FacebookSession;之前,以下neccessary类添加到您的代码,它应该是工作。

require_once('Facebook/HttpClients/FacebookHttpable.php'); 
require_once('Facebook/HttpClients/FacebookCurl.php'); 
require_once('Facebook/HttpClients/FacebookCurlHttpClient.php'); 
require_once('Facebook/Entities/AccessToken.php'); 
require_once('Facebook/Entities/SignedRequest.php');