致命错误:Class' Facebook \ Entities \ AccessToken'在第74行的/home/u412246436/public_html/facebook/Facebook/FacebookSession.php中找不到

时间:2014-08-16 06:27:16

标签: php facebook facebook-graph-api facebook-php-sdk

我正在尝试在我的网站上嵌入 Facebook登录模块。当我点击登录时,它会进入Facebook,当它重定向回我的网页时,会显示以下错误:

Fatal error: Class 'Facebook\Entities\AccessToken' not found in /home/u412246436/public_html/facebook/Facebook/FacebookSession.php on line 74

这是我的代码:

<?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' );

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

// init app with app id (APPID) and secret (SECRET)
FacebookSession::setDefaultApplication('XXXXX','YYYYYY');

// login helper with redirect_uri
$helper = new FacebookRedirectLoginHelper( 'http://www.dkclan.co/facebook/' );

try {
  $session = $helper->getSessionFromRedirect();
} catch( FacebookRequestException $ex ) {
  // When Facebook returns an error
} catch( Exception $ex ) {
  // When validation fails or other local issues
}

// see if we have a session
if ( isset( $session ) ) {
  // graph api request for user data
  $request = new FacebookRequest( $session, 'GET', '/me' );
  $response = $request->execute();
  // get response
  $graphObject = $response->getGraphObject();

  // print data
  echo  print_r( $graphObject, 1 );
} else {
  // show login url
  echo '<a href="' . $helper->getLoginUrl() . '">Login</a>';
}
?>

知道如何修复此错误吗?

3 个答案:

答案 0 :(得分:2)

不包括Facebook软件包中的AccessToken类。

您已添加

require_once('Facebook/Entities/AccessToken.php');

如果您以后遇到同样的错误,只需查看文档或在https://developers.facebook.com上搜索缺少的课程

答案 1 :(得分:2)

请从Facebook SDK中添加必要的php类...

<?php
session_start();

require_once('config.php');
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');

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' );




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;


FacebookSession::setDefaultApplication(FB_APP_ID, FB_APP_SECRET);

$helper = new FacebookRedirectLoginHelper(FB_REDIRECT_URI);
$session = $helper->getSessionFromRedirect();

if(isset($_SESSION['token'])){
    $session = new FacebookSession($_SESSION['token']);
    try{
        $session->validate(FB_APP_ID, FB_APP_SECRET);
    }catch(FacebookAuthorizationException $e){
        echo $e->getMessage();
    }
}


if(isset($session)){
    $_SESSION['token'] = $session->getToken();
    echo "Logged in successfully.";
    $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>";
}

您仍有疑问,请参阅PHP Facebook文档

https://developers.facebook.com/docs/php/gettingstarted/4.0.0

如果您仍有疑问,请点击此链接创建Facebook应用程序。现在下载源文件,只需在配置文件中替换您的客户端ID,客户端密钥和重定向URL。这就是它,它会好的。

Facebook OAuth 2 Login using PHP with example

答案 2 :(得分:0)

确保包含Facebook PHP SDK中的所有必需类:

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' );
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/FacebookOtherException.php' );
require_once( 'Facebook/FacebookAuthorizationException.php' );
require_once( 'Facebook/GraphObject.php' );
require_once( 'Facebook/GraphSessionInfo.php' );