PHP 致命错误:找不到类“Facebook”


PHP Fatal error: Class 'Facebook' not found in

PHP 致命错误:在第 36 行的/mnt/releases/server/asrivastava/first-task/390f5294f2b74ffbbe729e1ce9773c39573973b8/public/subscribe.php 中找不到类

<?php
try{
    include_once "./php-sdk/src/facebook.php";
}
catch(Exception $o){
    echo '<pre>';
    print_r($o);
    echo '</pre>';
}
error_log("Subscribe.php");
error_log("included facebook classes");
define ("FB_APPID" ,"APPID") ;
define ("FB_SECRET", "KEY");
define ("VERIFY_TOKEN" ,"myFirstFB");
$access_token = "MyAccessToken";
$user = array(
        "first_name",
        "last_name"
    ) ;
$param = array('access_token' => $access_token,
        'object' => 'user',
        'fields' => 'name, feed, likes',
     //   'callback_url' => 'http://apps.facebook.com./handleCallBack.php',
        'callback_url' => 'SomeUrl',
        'verify_token' => VERIFY_TOKEN
);
$config = array ('appId' => FB_APPID, 'secret' => FB_SECRET);
    error_log("Created FB object");
$fb = new Facebook($config);
Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;
error_log("made curl call");
try {
$subs = $fb->api('/'.APP_ID.'/subscriptions', 'POST', $param);
var_dump($subs);
} catch (FacebookApiException $e) {
    echo $e->getCode()." ".$e->getType()." ".$e->getMessage()." ".$e->getFile()." ".$e-                  >getLine()."'n";
}

?>

现在,每当我点击此URL时,我都会收到上面提到的错误。请给我一个解决方法。

错误日志 :

[2012 年 4 月 16 日星期一 06:51:02] [错误] [客户端 172.20.2.144] 订阅.php[2012年4月16日 06:51:02][错误][客户端 172.20.2.144] 包括脸书课程[2012年4月16日 06:51:02][错误][客户端 172.20.2.144]创建的 FB 对象[2012年4月16日 06:51:02][错误][客户端 172.20.2.144]PHP 致命错误:在第 36 行的/mnt/releases/server/asrivastava/first-task/390f5294f2b74ffbbe729e1ce9773c39573973b8/public/subscribe.php 中找不到类[2012年4月16日 06:51:02][错误][客户端 172.20.2.144]PHP 堆栈跟踪:[2012年4月16日 06:51:02][错误][客户端 172.20.2.144]菲律宾比索 1.{主要}()/mnt/releases/server/asrivastava/first-task/390f5294f2b74ffbbe729e1ce9773c39573973b8/public/subscribe.php:0[2012年4月16日 06:51:06][错误][客户端 172.20.2.144]文件不存在:/var/www/server_releases/asrivastava/first-task/flash,

我遇到了同样的问题。以下是我做错了你可能做错的事情:

当我转到此页面时:https://github.com/facebook/facebook-php-sdk/tree/master/src下载脸书.php、base_facebook.php等。

我右键单击并执行"将链接另存为",却没有意识到我没有保存我认为正在保存的内容。

解决方案:单击这些链接,然后将代码复制并粘贴到facebook.php等中。

问题很可能是您在文件顶部的包含中使用了略微不正确的路径。

首先,将include_once替换为require_once - 如果找不到文件,这将给您一个错误,而不是无论如何都要继续。

假设这是错误,请仔细检查要包含的文件与您的订阅相关的位置.php

"./php-sdk/src/facebook.php"表示"从当前目录开始(".")并在一个名为php-sdk/src的子目录中查找Facebook.php"。所以在你的例子中,它试图加载的完整路径是"/mnt/releases/server/asrivastava/first-task/390f5294f2b74ffbbe729e1ce9773c39573973b8/public/php-sdk/src/facebook.php"

也许你的"php-sdk"目录实际上更上一层楼?在这种情况下,您希望路径以".."而不是"开头。('"../php-sdk/src/facebook.php"表示"/mnt/releases/server/asrivastava/first-task/390f5294f2b74ffbbe729e1ce9773c39573973b8/php-sdk/src/facebook.php")

此外,由于这似乎是Linux/Unix服务器,因此路径都将区分大小写,因此,如果您的文件称为"FaceBook.php",则与"facebook.php"不同。