在用户代表发布时出现FACEBOOK错误

时间:2012-06-25 07:08:57

标签: php facebook

  

可能重复:
  Facebook post on a user's behalf

这是在Facebook上,我收到此错误

致命错误:第4行/home/u567000587/public_html/facebook/index.php中未找到“Facebook”类

我已将其设置为可以代表用户发布

此代码无效

<html>
<?php

       $facebook = new Facebook(array(
        'appId'  => 329394273803XXX, // YOUR APP ID
        'secret' => df6e14ef537ad57bdbec5bf5a9dXXX, // YOUR API SECRET
         ));

    $user = $facebook->getUser();

    if($user) { 
    $attachment = array(
    'name' => 'NAME',
     'caption' => 'CAPTION',
     'link' => 'http://yourlink.com',
     'description' => 'DESCRIPTION',
     'picture' => 'http://yourlink.com/yourimage.jpg'
     );
     try { $result = $facebook->api('/me/feed/', 'post',    $attachment,array('access_token'=>$valid_access_token)); 
} 
catch(FacebookApiException $e) {  }
     }
?>
</html>

2 个答案:

答案 0 :(得分:1)

您尚未加入Facebook类 - 这意味着您没有下载库文件,或将其包含在您的php源代码中。

这里有facebook API的完整文档; http://developers.facebook.com/docs/reference/php/

可以在这里找到php Facebook库/类; https://github.com/facebook/php-sdk

将上面github链接上的src /文件夹的内容下载到与您创建的上述文件相同位置的src /文件夹中。然后,你需要包含php类;通过在脚本之后插入以下代码来执行此操作

require_once("src/facebook.php");

以上内容应该足以让你继续......但我强烈建议你阅读上面的文档 - 你在上面的例子中使用OOP,但你似乎并不完全理解它的工作原理。此外,您在上面的代码段中与全世界共享了您的API密钥..您可能希望删除它。

祝你好运。

  • 锐衡

答案 1 :(得分:0)

首先将“ your_app_id ”,“ Your_app_secret ”和“ you_app_namespace ”替换为您应用的相应值。 然后你必须在这个应用程序所在的同一目录中拥有php sdk(facebook.php,base_facebook.php和fb_ca_chain_bundle.crt)的所有文件。 如果这不起作用,那么你最好退出facebook编程

<html>
<body>
<?php

require 'facebook.php';
$facebook_appid='your_app_id'; //
$facebook_app_secret='Your_app_secret';

$facebook = new Facebook(array(
'appId'  => $facebook_appid,
'secret' => $facebook_app_secret,
));





if (isset($_GET['code'])){
        header("Location:http://apps.facebook.com/you_app_namespace");  //replace you_app_namespace with your app namespace (app name)
        exit;
    }
$user=null;




//Facebook Authentication part
    $user       = $facebook->getUser();
    // We may or may not have this data based 
    // on whether the user is logged in.
    // If we have a $user id here, it means we know 
    // the user is logged into
    // Facebook, but we don’t know if the access token is valid. An access
    // token is invalid if the user logged out of Facebook.

    $loginUrl   = $facebook->getLoginUrl(
            array(
                'scope'         => 'publish_stream' //list of permissions
            )
    );

    if ($user) {
      try {
        // Proceed knowing you have a logged in user who's authenticated.
        $user_profile = $facebook->api('/me');
      } catch (FacebookApiException $e) {
        //you should use error_log($e); instead of printing the info on browser
        d($e);  // d is a debug function defined at the end of this file
        $user = null;
      }
    }

    if (!$user) {
        echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
        exit;
    }

    //get user basic description
    $userInfo           = $facebook->api("/$user");


 if($user) { 
    $attachment = array(
    'name' => 'NAME',
     'caption' => 'CAPTION',
     'link' => 'http://yourlink.com',
     'description' => 'DESCRIPTION',
     'picture' => 'http://yourlink.com/yourimage.jpg'
     );
     try { $result = $facebook->api('/me/feed/', 'post',    $attachment,array('access_token'=>$facebook->getAccessToken())); 
} 
catch(FacebookApiException $e) {  }
     }



?>
</body>
</head>