2014-05-21 5 views
3

새로운 Facebook API (4.0)를 사용하고 있는데 심각한 문제가 있습니다.클래스 'FacebookSession'을 찾을 수 없습니다 - API Facebook 4.0

내 페이지 loginUser.php의 코드는 다음과 같습니다

<?php 
require_once("autoload_fb.php"); 


// init app with app id and secret 
FacebookSession::setDefaultApplication('647345538685342','6ea4dc94874b31a637b6fe368bcfba76'); 

// login helper with redirect_uri 
$helper = new FacebookRedirectLoginHelper('http://www.radiobrunoestate.mumbleserver.it/api/loginUser'); 

// see if a existing session exists 
if (isset($_SESSION) && isset($_SESSION['fb_token'])) { 
    // create new session from saved access_token 
    $session = new FacebookSession($_SESSION['fb_token']); 

    // validate the access_token to make sure it's still valid 
    try { 
    if (!$session->validate()) { 
     $session = null; 
    } 
    } catch (Exception $e) { 
    // catch any exceptions 
    $session = null; 
    } 

} else { 
    // no session exists 

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

} 

// see if we have a session 
if (isset($session)) { 

    // save the session 
    $_SESSION['fb_token'] = $session->getToken(); 
    // create a session using saved token or the new one we generated at login 
    $session = new FacebookSession($session->getToken()); 

    // graph api request for user data 
    $request = new FacebookRequest($session, 'GET', '/me'); 
    $response = $request->execute(); 
    // get response 
    $graphObject = $response->getGraphObject()->asArray(); 

    // print profile data 
    echo '<pre>' . print_r($graphObject, 1) . '</pre>'; 

    // print logout url using session and redirect_uri (logout.php page should destroy the session) 
    echo '<a href="' . $helper->getLogoutUrl($session, 'http://yourwebsite.com/app/logout.php') . '">Logout</a>'; 

} else { 
    // show login url 
    echo '<a href="' . $helper->getLoginUrl(array('email', 'user_friends')) . '">Login</a>'; 
    } 
?> 

autoload_fb.php는 단순히 :

Fatal error: Class 'FacebookSession' not found in /home/jack/provaprova/api/loginUser.php on line 6 
:

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

내가 먼저 서버에서이 오류가

다른 서버에서 동일한 코드를 테스트하는 중이 오류가 있습니다 :

Parse error: syntax error, unexpected T_OBJECT_OPERATOR in /home/eyikmdnu/public_html/jack/provaprova/api/Facebook/FacebookSession.php on line 140 

어디에서 문제가 될 수 있습니까? 서버 구성의 문제점 일 수 있습니까?

감사합니다.

+0

이 문제를 어떻게 해결 했습니까? 치명적인 오류 : 내가 PHP가 잘이 –

답변

2

페이스 북 PHP PHP v4에는 PHP 5.4가 필요합니다. PHP의 이전 버전을 사용했을 가능성이 큽니다.

+0

에 직면하고있다 오류 설명 ...하지만 왜 처음에 ID가 작동하지 않습니다 모르겠다) –

+0

(두 번째 서버에 내가 PHP 5.3이의 5.4.26이 발견되지 클래스 'FacebookSession'난, 첫 번째 서버에 오류가있는 하나 같은 문제 –

0

포함 파일의 use 문은 기본 파일을 가져 오지 않습니다. 따라서 autoload_fb.php 파일을 포함 한 직후에 use 문을 주 파일로 옮겨야합니다.

하지만 다른 문제가 있습니다. 귀하의 오토로더는 실제 오토로더가 아닙니다. Here's more info on that.

1

나는 당신이 "loginUser.php" 파일의 상단에 또한 "사용" 문을 넣어야 할 것 같아요.

이미 작동했다고 가정 해 보겠습니다.하지만 문제라고 생각합니다.

어쩌면 다른 사람에게 도움이 될 수 있습니다.

+0

그건 내 기능이었다. 나는 당신이 객체 메소드 내에서 '사용'을 사용할 수 없다는 것을 몰랐다. – adjwilli

+0

불가능합니다. 당신은 클래스와 기능 밖에서 사용해야합니다. 예를 들어 파일의 맨 위에. – Alejandro