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 语句正在打印:Object Id #1。然后它会执行我的下一个打印语句。然后它返回未捕获的致命错误。我在这里想念什么?

为什么服务器无法获得正确的访问令牌?

4

2 回答 2

2

您未能访问requirefacebook.php,因此ERROR1: Object id #1- 您试图回显异常错误对象。尝试

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

反而。

你不应该发现这种错误。如果要求失败,唯一有用的解决方案是中止执行,因为您还没有获得继续执行所需的内容。

基本上,您已经实现了 Visual Basic 的 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 回答