如何通过Graph API为移动网站“获取”Facebook页面状态

时间:2012-12-27 01:39:16

标签: php facebook-graph-api status posts mobile-website

我正在为我的教会设计一个移动网站,我想在网站上发布我教会的Facebook状态更新。我尝试过像Facebook一样的盒子,但我发现它在功能上有限,而且在移动网站上效果不佳。

然后我发现了Facebook的Graph API。我在我的网站上找到了一个PHP脚本(http://stackoverflow.com/questions/9373645/can-you-get-a-public-facebook-pages-feed-using-graph-api-without-asking-a -user),我在Facebook上创建了一个应用程序。使用Facebook的Graph API Express,我正在尝试自定义输出,因此我只获取页面的状态更新和时间戳。

例如,我尝试了https://graph.facebook.com/ [profile ID] /帖子。但是,这包括我发布图片和创建活动的时间;我只想要状态更新。有没有什么办法可以通过将“类型”指定为“状态”来使用Graph API来限制帖子?我无法让它发挥作用。

理想情况下,我希望代码能够获取我教会Facebook页面的状态更新,特别是“message”和“created_time”字段,我想将结果限制为10。

如果有更好的方法,请告诉我。我是这方面的新手,我基本上只是想找到实现这一目标的代码。

1 个答案:

答案 0 :(得分:1)

  

有什么方法可以通过将“类型”指定为“状态”来使用Graph API来限制帖子吗?

Graph API包含“状态”端点作为the User object的一部分。它的访问方式与“posts”端点类似:

https://graph.facebook.com/[profile ID]/statuses

要将结果限制为仅10种状态,您可以在网址中添加“限制”参数:

https://graph.facebook.com/[profile ID]/statuses?limit=10

例如,使用应用程序访问令牌的Boo facebook.com/boo页面。

<?php
$access_token = '1111111111|2Cha_1-n5';
$graph_url = "https://graph.facebook.com/Boo/statuses?limit=10&access_token=" 
    . $access_token;
$page_posts = json_decode(file_get_contents($graph_url), true);

foreach($page_posts['data'] as $post){
    $message = $post['message'];
    $post_time = $post['created_time'];
}

echo $message .' '. $post_time;
?>

有关此过滤器和其他过滤API输出的方法的更多信息,请参阅Graph API's Pagination documentation