0

同じディレクトリにすべてのファイル (facebook.php、base_facebook.php、index.php) があります。私のサーバーは Apache で、どちらも php をサポートしています。私のコード:

<html>
<body>
<?php
try
{
echo("STARTING<br>");
require("facebook.php");
}
catch(Exception $e)
{
echo("ERROR1: $e");
}

try
{
$facebook = new Facebook("***","###");
}
catch(Exception $e)
{
echo("ERROR2: $e");
}
$token = $facebook->getAccessToken();
echo("Access token: ".$token."<br>");

私のテキスト出力は次のとおりです。

STARTING
ERROR1: Object id #1before create fb instance

Fatal error: Class 'Facebook' not found in /(FILE PATH)/index.php on line 16

Note: line 16 is: $facebook = new Facebook("***","###");

最初の catch ステートメントは、printing: Object Id #1 です。次に、次の print ステートメントを実行します。その後、キャッチされていない Fatal Error を返します。ここで何が欠けていますか?

サーバーが正しいアクセス トークンを取得できないのはなぜですか?

4

2 に答える 2

2

requirefacebook.phpに失敗したためERROR1: Object id #1、例外エラーオブジェクトをエコーアウトしようとしています。試す

catch ($e) {
   die($e->getMessage());
}

代わりは。

そのようなエラーをキャッチするべきではありません。requireが失敗した場合、実行を継続するために必要なものが得られないため、唯一の有用な解決策は実行を中止することです。

基本的に、あなたはビジュアルベーシックのPHP化バージョンを実装しましたon error resume nextが、それに伴うすべての厄介な愚かさもあります。

于 2013-03-12T15:33:47.163 に答える
0

ヘッダーが送信される前にコードを配置する必要があります。

詳細については、 https : //developers.facebook.com/docs/reference/php/ を参照してください。

基本的に、これをコードの一番上に置きます:

<?php
require_once("facebook.php");

$config = array();
$config[‘appId’] = 'YOUR_APP_ID';
$config[‘secret’] = 'YOUR_APP_SECRET';
$config[‘fileUpload’] = false; // optional

$facebook = new Facebook($config);
?>

次に、HTML を読み込みます (MVC スタイルの方がメンテナンスに適しています ;-)

于 2013-03-12T15:40:59.607 に答える