2012-04-16 114 views
1

PHP致命错误发现:类的Facebook'不在/mnt/releases/server/asrivastava/first-task/390f5294f2b74ffbbe729e1ce9773c39573973b8/public/subscribe.php发现在线路36上PHP致命错误:类“Facebook的不

<?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,我都会收到上面提到的错误。 请好好建议我通过它的方式。

错误日志:

[周一4月16日6点51分02秒2012] [错误] [客户端172.20.2.144] Subscribe.php [周一4月16日6点51分02秒2012] [错误] [客户端172.20.2.144]包含facebook类 [Mon Apr 16 06:51:02 2012] [error] [client 172.20.2.144]创建FB对象 [Mon Apr 16 06:51:02 2012] [error] [client 172.20 .2.144] PHP致命错误:未在/mnt/releases/server/asrivastava/first-task/390f5294f2b74ffbbe729e1ce9773c39573973b8/public/subscribe.php上找到类'Facebook'on line 36 [Mon Apr 16 06:51:02 2012] [错误] [客户端172.20.2.144] PHP堆栈跟踪: [Mon Apr 16 06:51:02 2012] [error] [client 172.20.2.144] PHP 1. {main}()/mnt/releases/server/asrivastava/first-task/390f5294f2b74ffbbe729e1ce9773c39573973b8/public/subscribe.php:0 [Mon Apr 16 06:51:06 2012] [error] [client 172.20.2.144]文件不存在:/ var/www/server_releases/asrivastava/first-task/flash,

+0

是什么文件的样子:./php-sdk/src/facebook.php?您遇到的问题是您的脚本无法找到最有可能在此文件中定义的Facebook类。也可以尝试移除include的try/catch,因为这个文件是必须继续执行的。 – Jonatan 2012-04-16 11:12:32

+1

只用这一行代替try/catch-struct:require_once('./ php-sdk/src/facebook.php'); – 2012-04-16 12:24:00

+0

@fulhack:https://developers.facebook.com/docs/reference/php/ 我试过,没有try/catch块,但它尚未包含 – Sokio 2012-04-17 13:04:27

回答

4

我有同样的问题。 这里是我做错了什么,你可能会做的:

当我去到这个网页: https://github.com/facebook/facebook-php-sdk/tree/master/src 下载facebook.php,base_facebook.php等

我右键点击并做了“保存链接“没有意识到我没有保存我以为我保存的东西。

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

+0

或采取* raw *链接github优惠 - if你不能用git克隆。 – hakre 2012-10-03 19:24:05

0

问题很可能是您在include文件顶部使用的路径稍微不正确。

首先,将include_once替换为require_once - 如果无法找到该文件,则会给您一个错误,而不是继续进行。

假设是错误,仔细检查,其中要包含该文件是关于您subscribe.php

“./php-sdk/src/facebook.php”是指“在开始的当前目录(“。”)并在facebook.php中查找名为php-sdk/src的子目录“。所以你的情况,它试图加载完整路径是“/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”。