1

PHPの致命的なエラー:クラス「Facebook」が/mnt/releases/server/asrivastava/first-task/390f5294f2b74ffbbe729e1ce9773c39573973b8/public/subscribe.phpの36行目に見つかりません

<?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にアクセスするたびに、上記のエラーが発生します。親切にそれを通り抜ける方法を私に提案してください。

エラーログ :

[Mon Apr 16 06:51:02 2012] [error] [client 172.20.2.144] Subscribe.php [Mon Apr 16 06:51:02 2012] [error][client172.20.2.144]含まれるFacebookクラス[MonApr16 06:51:022012][エラー][クライアント172.20.2.144]作成されたFBオブジェクト[MonApr16 06:51:02 2012][エラー][クライアント172.20.2.144]PHP致命的なエラー:クラス「Facebook」が見つかりません/mnt/releases/server/asrivastava/first-task/390f5294f2b74ffbbe729e1ce9773c39573973b8/public/subscribe.php on line 36 [Mon Apr 16 06:51:02 2012] [error] [client 172.20.2.144] PHP Stack trace:[Mon Apr 16 06:51:022012][エラー][クライアント172.20.2.144]PHP1. {main}()/mnt/releases/server/asrivastava/first-task/390f5294f2b74ffbbe729e1ce9773c39573973b8/public/subscribe.php:0 [Mon Apr 16 06:51:06 2012][エラー][クライアント172.20.2.144]ファイルが存在しません:/ var / www / server_releases / asrivastava / first-task / flash、

4

2 に答える 2

4

私も同じ問題を抱えていました。これがあなたがしたかもしれない私が間違ったことです:

このページにアクセスしたとき: https ://github.com/facebook/facebook-php-sdk/tree/master/src でfacebook.php、base_facebook.phpなどをダウンロードします。

右クリックして「名前を付けてリンクを保存」を実行しましたが、保存していると思っていたものが保存されていないことに気づきませんでした。

解決策:これらのリンクをクリックしてから、コードをコピーしてfacebook.phpなどに貼り付けます。

于 2012-10-02T16:27:16.080 に答える
0

問題は、ファイルの先頭にあるインクルードでわずかに間違ったパスを使用している可能性があります。

まず、次のように置き換えます。これinclude_onceによりrequire_once、ファイルが見つからない場合は、続行するのではなく、エラーが発生します。

それがエラーであると想定して、含まれるファイルがsubscribe.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」ディレクトリは実際には1つ上のレベルですか?その場合、パスを「。」ではなく「..」で開始する必要があります。(「../php-sdk/src/facebook.php」は「/mnt/releases/server/asrivastava/first-task/390f5294f2b74ffbbe729e1ce9773c39573973b8/php-sdk/src/facebook.php」を意味します)

また、これはLinux / Unixサーバーのように見えるため、パスではすべて大文字と小文字が区別されます。したがって、ファイルの名前が「FaceBook.php」の場合、「facebook.php」とは異なります。

于 2012-07-18T22:36:14.083 に答える