我试图简单地获取公开的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帖子的方法。
答案 0 :(得分:0)
如果没有使用user_posts
授权该特定用户,您就无法收到用户个人资料的公开信息。您也可以使用/me/feed
。更多信息:https://developers.facebook.com/docs/graph-api/reference/v2.3/user/feed
您需要做什么:
user_posts
/me/posts
与存储的令牌一起使用以获取条目有关令牌的信息可在以下文章中找到: