facebook php访问令牌

时间:2013-03-12 15:30:09

标签: php facebook

我将所有文件(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语句是print:Object Id#1。然后它执行我的下一个打印声明。然后它返回未捕获的致命错误。我在这里缺少什么?

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

2 个答案:

答案 0 :(得分:2)

你没有require facebook.php,因此ERROR1: Object id #1 - 你试图回应异常错误对象。尝试

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

代替。

你不应该抓住那种错误。如果一个require失败,唯一有用的解决方案是中止执行,因为你没有得到你需要继续执行的东西。

基本上你已经实现了Visual Basic的on error resume next的PHP版本,其中包含了所有令人讨厌的愚蠢。

答案 1 :(得分: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风格中更适合维护; - )