使用 php sdk 4 获取 Facebook 页面过去 24 小时内创建的帖子
Get posts that created in the past 24hr of a facebook page using php sdk 4
Facebook 2.0以后的版本将不再支持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
这是我的图表 api 使用 phpsdk4 的代码,它是从上面的 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();
我需要....
- 永久链接的 post
- 大尺寸图片附件post
- 过滤时间段(过去24小时内创建)
- 按 (DESC) 点赞量或按 created_time
订购
如何在不使用 fql 的情况下获得所有这些?
谢谢你的回答。
使用图形 API 而不是 FQL 获得相同结果有几个问题:
- 没有
permalink
字段
- 您不能明确指定
attachments
较大
- 您不能申请订单。默认排序应该是
created_time
虽然
要指定时间过滤器,可以使用URL参数since
和until
:
GET /{page_id}/posts?fields=id,message,shares,object_id,likes.summary(true),comments.summary(true),attachments{media}&since=1423440000&until=1423526399
这应该会为您提供特定页面从今天开始的所有帖子。
您可以通过连接恕我直言来创建 permalink
:
https://www.facebook.com/{page_id}/posts/{object_id}
参见:
Facebook 2.0以后的版本将不再支持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
这是我的图表 api 使用 phpsdk4 的代码,它是从上面的 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();
我需要....
- 永久链接的 post
- 大尺寸图片附件post
- 过滤时间段(过去24小时内创建)
- 按 (DESC) 点赞量或按 created_time 订购
如何在不使用 fql 的情况下获得所有这些? 谢谢你的回答。
使用图形 API 而不是 FQL 获得相同结果有几个问题:
- 没有
permalink
字段 - 您不能明确指定
attachments
较大 - 您不能申请订单。默认排序应该是
created_time
虽然
要指定时间过滤器,可以使用URL参数since
和until
:
GET /{page_id}/posts?fields=id,message,shares,object_id,likes.summary(true),comments.summary(true),attachments{media}&since=1423440000&until=1423526399
这应该会为您提供特定页面从今天开始的所有帖子。
您可以通过连接恕我直言来创建 permalink
:
https://www.facebook.com/{page_id}/posts/{object_id}
参见: