Facebook PHP SDK 4.0根本不起作用-在Facebook类内部


Facebook PHP SDK 4.0 not working AT ALL - Inside Facebook Classes

晚安。

嗯,我的问题有点奇怪而且很长。我正在开发一个应用程序,我创建了一个开发环境来测试Facebook SDK PHP(4.0)。我的环境是Xubuntu,PHP 5.9,Apache2.2。所有人都在全力研究其他libs。我第一次犯错误已经好几天了,我的项目交付已经晚了。

文件结构

pedro@pLp-Xubuntu:/var/www/html/sdk$ tree
.
├── composer.json
├── Facebook
│   ├── Entities
│   │   ├── AccessToken.php
│   │   └── SignedRequest.php
│   ├── FacebookAuthorizationException.php
│   ├── FacebookCanvasLoginHelper.php
│   ├── FacebookClientException.php
│   ├── FacebookJavaScriptLoginHelper.php
│   ├── FacebookOtherException.php
│   ├── FacebookPageTabHelper.php
│   ├── FacebookPermissionException.php
│   ├── FacebookRedirectLoginHelper.php
│   ├── FacebookRequestException.php
│   ├── FacebookRequest.php
│   ├── FacebookResponse.php
│   ├── FacebookSDKException.php
│   ├── FacebookServerException.php
│   ├── FacebookSession.php
│   ├── FacebookSignedRequestFromInputHelper.php
│   ├── FacebookThrottleException.php
│   ├── GraphAlbum.php
│   ├── GraphLocation.php
│   ├── GraphObject.php
│   ├── GraphPage.php
│   ├── GraphSessionInfo.php
│   ├── GraphUserPage.php
│   ├── GraphUser.php
│   └── HttpClients
│       ├── FacebookCurlHttpClient.php
│       ├── FacebookCurl.php
│       ├── FacebookGuzzleHttpClient.php
│       ├── FacebookHttpable.php
│       ├── FacebookStreamHttpClient.php
│       ├── FacebookStream.php
│       └── fb_ca_chain_bundle.crt
└── index.php

我的代码

<?php
session_start();
// incluindo arquivos (coloquei todos pois segui um gist)
// onde mostrava as ultimas alterações nas estruturas de arquivos
// do SDK
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' );

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

 // declarando namespaces
use Facebook'FacebookSession;
use Facebook'FacebookRedirectLoginHelper;
use Facebook'FacebookRequest;
use Facebook'FacebookResponse;
use Facebook'FacebookSDKException;
use Facebook'FacebookRequestException;
use Facebook'FacebookOtherException;
use Facebook'FacebookAuthorizationException;
use Facebook'GraphObject;
use Facebook'GraphSessionInfo;

use Facebook'HttpClients'FacebookHttpable;
use Facebook'HttpClients'FacebookCurl;
use Facebook'HttpClients'FacebookCurlHttpClient;
use Facebook'Entities'AccessToken;
use Facebook'Entities'SignedRequest;
// Initialize&nbsp;application by Application ID and Secret
FacebookSession::setDefaultApplication('278431555695618 ','d182891f6e65d242f14c5ca199a0f48d');
// Login Healper with reditect URI
$helper = new FacebookRedirectLoginHelper( 'http://localhost/sdk' );
try {
  $session = $helper->getSessionFromRedirect();
}
catch( FacebookRequestException $ex ) {
  // Exception
}
catch( Exception $ex ) {
  // When validation fails or other local issues
}
// Checking Session
if(isset($session))
{
  // Request for user data
  $request = new FacebookRequest( $session, 'GET', '/me' );
  $response = $request->execute();
  // Responce
  $data = $response->getGraphObject();
  // Print data
  echo  print_r( $data, 1 );
}
else
{
  // Login URL if session not found
  echo '<a href="' . $helper->getLoginUrl() . '">Login</a>';
}
?>

错误

[Thu Oct 23 22:10:07.989261 2014] [:error] [pid 2693] [client 127.0.0.1:54885] PHP Fatal error:  Class 'Facebook''HttpClients''FacebookStreamHttpClient' not found in /var/www/html/sdk/Facebook/FacebookRequest.php on line 166, referer: http://localhost/sdk/
[Thu Oct 23 22:13:40.809312 2014] [:error] [pid 1356] [client 127.0.0.1:54922] PHP Fatal error:  Class 'Facebook''HttpClients''FacebookStreamHttpClient' not found in /var/www/html/sdk/Facebook/FacebookRequest.php on line 166, referer: http://localhost/sdk/

请注意,他说找不到的文件就在那里。他到底在找什么。。。

我试过使用自动加载和composer。同样的错误,只是它在FacebookSession.php或FacebookRequest.php上。

问题是,我哪儿也做不到工作。

不管怎样,谢谢你的回复。

我讨厌Facebook现在

更改includes的顺序将为您解决问题:

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