获取使用php-sdk4在过去24小时内创建的facebook页面的帖子


Get posts that created in the past 24hr of a facebook page using php sdk 4

2.0之后版本的Facebook将不再支持FQL。所以我不得不从FQL改为图形api。

我的旧FQL代码是.

SELECT source_id,post_id,message,like_info.like_count,comment_info.comment_count,share_info.share_count,permalink,created_time,attachment.media FROM stream WHERE source_id = "--page_id--" AND actor_id = "--page_id--" AND created_time>--time_start-- AND created_time<--time_end-- ORDER BY like_info.like_count DESC

这是我使用phpsdk4的图形api代码,它从上面的fql代码转移而来,但它并不完整(因为我不知道下一步该怎么做)。

require_once 'facebookphpsdk4/autoload.php';
use Facebook'FacebookSession;
use Facebook'FacebookRedirectLoginHelper;
use Facebook'FacebookRequest;
use Facebook'FacebookResponse;
use Facebook'FacebookSDKException;
use Facebook'FacebookRequestException;
use Facebook'FacebookAuthorizationException;
use Facebook'GraphObject;
use Facebook'Entities'AccessToken;
use Facebook'HttpClients'FacebookCurlHttpClient;
use Facebook'HttpClients'FacebookHttpable;
$access_token = 'xxx|yyy';
FacebookSession::setDefaultApplication( 'xxx','yyy' );
$session = new FacebookSession($access_token);
$request = new FacebookRequest(
    $session,
    'GET',
    '/page_id?fields=posts{id,shares,message,likes.summary(true),comments.summary(true)}'
);
$response = $request->execute();
$graphObject = $response->getGraphObject()->asArray();

我需要。。。。

  • permalink的帖子
  • 大尺寸图片附件的帖子
  • 筛选时间段(在过去24小时内创建)
  • 按(DESC)同类数量订购或按created_time订购

如果不使用fql,我如何获得所有这些?谢谢你的回答。

使用Graph API而不是FQL:获得相同结果有几个问题

  • 没有permalink字段
  • 不能显式指定attachments为大
  • 您不能申请订购。默认排序应按created_time

要指定时间过滤器,可以使用URL参数sinceuntil:

GET /{page_id}/posts?fields=id,message,shares,object_id,likes.summary(true),comments.summary(true),attachments{media}&since=1423440000&until=1423526399

这将为您提供从今天起针对特定页面的所有帖子。

您可以通过连接imho:来创建permalink

https://www.facebook.com/{page_id}/posts/{object_id}

参见:

  • https://developers.facebook.com/docs/graph-api/reference/v2.2/post#fields
  • https://developers.facebook.com/docs/graph-api/using-graph-api/v2.1#paging