Facebook PHP SDK v5.0 - 找不到FacebookRequest错误

时间:2015-09-02 19:48:31

标签: php facebook facebook-graph-api

我使用的是PHP-SDK-v5.0软件包downloaded from here。我试图在example provided by facebook之后从公共群组获取后期Feed。当我尝试运行脚本时,它会抛出错误 - Fatal error: Class 'FacebookRequest' not found。这是抛出错误的示例。

require_once __DIR__. '/Facebook/autoload.php';    
$request = new FacebookRequest(
      $session,
      'GET',
      '/{group-id}/feed',
      array(
        'fields' => 'full_picture,attachments.limit(3){media,title,type,url},icon,message',
        'limit' => '1'
      )
    );

    $response = $request->execute();
    $graphObject = $response->getGraphObject();
    var_dump($graphObject);

我有另一个基于以下示例的简单facebook登录脚本,共享同一目录并且运行正常。所以绝对不是路径问题。

session_start();
require_once __DIR__. '/Facebook/autoload.php';
$fb = new Facebook\Facebook([
    'app_id' => 'xxxxx',
    'app_secret' => 'xxxxxxxxxxx',
    'default_graph_version' => 'v2.2',
    ]);

$helper = $fb->getRedirectLoginHelper();
$permissions = ['email', 'public_profile', 'user_friends']; // Optional permissions
$loginUrl = $helper->getLoginUrl('http://domain.com/fb-app/login-callback.php', $permissions);

echo '<a href="' . htmlspecialchars($loginUrl) . '">Log in with Facebook!</a>';

我怀疑这是一个与命名空间有关的问题,我不是很熟悉。我尝试使用this question问题的解决方案,建议使用use Facebook\FacebookRequest;但不起作用,$request = new Facebook\FacebookRequest也不行。此外,我觉得脚本不完整,应该包含访问令牌。我还在学习东西,请帮我解决这个问题。

1 个答案:

答案 0 :(得分:3)

您应该在创建对象时专门定义命名空间:

$request = new Facebook\FacebookRequest(...

或与new FacebookRequest保持一致,但在脚本的开头添加use Facebook\FacebookRequset

另请注意,您使用的是Facebook SDK v4语法而不是v5。有关如何将FacebookRequest与SDK v5一起使用的信息,请参阅here