【问题标题】:Facebook PHP SDK 4.0 not working AT ALL - Inside Facebook ClassesFacebook PHP SDK 4.0 根本不工作 - Facebook 类内部
【发布时间】:2014-10-24 00:29:22
【问题描述】:

晚安,伙计们。

嗯,我的问题有点奇怪而且很长。我正在开发一个应用程序,并创建了一个开发环境来测试 Facebook SDK PHP (4.0)。我的环境是 Xubuntu,使用 PHP 5.9,Apache2.2。 全部在其他库上工作。距离我的第一个错误已经过去了几天,我交付项目的时间已经晚了。

文件结构

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/

请看看他说找不到的文件在那里。他到底在哪里找……

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

问题是,我无法在任何地方工作。

无论如何,感谢您的回复。

我现在讨厌 Facebook

【问题讨论】:

  • 你为什么要手动完成所有要求?使用自动装载机。或者至少使用 Facebook SDK 附带的自动加载器。问题是您在需要 FacebookRequest 之前不需要 FacebookStreamHttpClient

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


【解决方案1】:

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

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

Source

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多