我正在使用PHP开发一个facebook应用程序(SDK v5)。我需要获取用户拥有管理员权限的页面的帖子以及每个帖子的帖子来计算它的喜欢/评论/分享。
使用Graph API我最终得到了这个解决方案:
<th>
我认为上述解决方案远非完美,因为每个facebook帖子都会执行三个额外的调用(喜欢,评论,分享)。这种表现和可扩展性很糟糕。
现在为了提升性能,我打算使用FQL,但我偶然发现了facebook FQL文档中的这条评论:
截至2016年8月8日,FQL将不再可用,也不可用 查询。
所以我的问题是:
有没有人知道另一种有效检索喜欢/评论/分享的方法,甚至是提高解决方案性能的方法?
答案 0 :(得分:0)
根据@CBroe的建议,我找到了解决方案。解决方案需要一次调用Graph API,这是(3 * posts)+1次调用的一个重大改进:
$fb = new Facebook\Facebook([
'app_id' => 'XXX',
'app_secret' => 'XXX',
'default_graph_version' => 'v2.7',]);
$pageId = //find the page id
$accessToken = //and the access token
$response = $fb->get('/'.$pageId.'/feed?fields=likes.summary(1).limit(0),comments.summary(1).limit(0), ....', (string) $accessToken);
$response = $response->getDecodedBody();
$pagePosts = $response['data'];
foreach ($pagePosts as $post) {
$likesObject = $post['likes'];
$likesCount = $likesObject['summary']['total_count'];
$commentsObject = $post['comments'];
$commentsCount = $commentsObject['summary']['total_count'];
}