从Facebook帐户获取公开信息

时间:2015-04-24 09:53:19

标签: php facebook facebook-graph-api

我试图简单地获取公开的Facebook帖子列表,但事实证明它比预期更难。在遇到几十种不同的方法/答案之后,我决定尝试使用Facebook PHP SDK - 没有结果:

$appID     = 'MY_APP_ID';
$appSecret = 'MY_APP_SECRET';
$userID    = 'TARGET_USER_ID';

FacebookSession::setDefaultApplication($appID, $appSecret);

$session = FacebookSession::newAppSession();

try {
    $session->validate();
} catch (FacebookRequestException $ex) {
    // Session not valid, Graph API returned an exception with the reason.
    echo $ex->getMessage();
} catch (\Exception $ex) {
    // Graph API returned info, but it may mismatch the current app or have expired.
    echo $ex->getMessage();
}

try {
    $request = new FacebookRequest($session, 'GET', '/' . $userID . '/feed');
    $response = $request->execute();
    $graphObject = $response->getGraphObject();
} catch(\Exception $exception) {
    print_r($exception);
}

// result always is an empty GraphObject
print_r($graphObject->AsArray());

我的目标是简单地读出$ userID的所有公开帖子,但是尽管没有使用此代码出现任何错误,但$ graphObject始终为空。我已经使用了我的私人脸书帐户,并制作了一些公开的测试帖子,结果很好。

我在这里做错了什么?如何获得所有帖子的简单列表?

编辑:似乎很多文件/" howtos"参考旧的PHP PHP SDK,其中只有一个单一类(称为Facebook)。新SDK有任何示例吗?

最后,我唯一的目标是阅读来自单个用户(我有完全访问权限)的帖子,就像你使用twitter一样。如果有更简单的方法,我也可以切换到那些。它不应该是多个用户的应用程序 - 只是一种读出自己的fb帖子的方法。

1 个答案:

答案 0 :(得分:0)

如果没有使用user_posts授权该特定用户,您就无法收到用户个人资料的公开信息。您也可以使用/me/feed。更多信息:https://developers.facebook.com/docs/graph-api/reference/v2.3/user/feed

您需要做什么:

  • 使用user_posts
  • 授权用户
  • 扩展用户令牌并将其存储在数据库中
  • /me/posts与存储的令牌一起使用以获取条目

有关令牌的信息可在以下文章中找到: