如何显示Facebook页面帖子?

时间:2013-03-28 15:22:52

标签: php facebook-graph-api

我想要做的就是在公司网站的Facebook页面上显示3条最新帖子。 这是我目前使用access_token的代码,我可以从facebooks graph api explorer生成。

<?php
$token = 'AAACfoqFEeZC0BAB9I7MpVUNXNQADQA8WCzBngUZAjCjZCDHZCi4kIDFDl3cQjLZCndgSyp9talZA4ERCfS14iMZAIQa2DuAEfHUYZAr0qlDYKwZDZD';
$feed = file_get_contents('https://graph.facebook.com/mypageidhere/posts?fields=message&limit=3&access_token='.$token);
$json = json_decode($feed);

foreach($json->data as $update) {

        echo $update->message.'<br /><hr />';   

}
?>

除了访问令牌过期外,这种方法很有效。我不希望用户必须登录该网站或类似的东西。我已经阅读了Facebook API文档但很好,它非常可怕,对我没有帮助。有没有办法获得终身访问令牌或根本不使用access_token?

2 个答案:

答案 0 :(得分:0)

曾经有一种方法可以请求离线访问,但似乎已经弃用了。更多信息,请https://developers.facebook.com/roadmap/offline-access-removal/

答案 1 :(得分:0)

如果有人对我在此找到的解决方案感兴趣,那就是。 我用的是facebook php / sdk

require_once "facebook-php-sdk/src/facebook.php";

$facebook = new Facebook(array(
  'appId'  => '<YOUR APP ID>',
  'secret' => '<YOUR SECRET>'
));

$query = 'SELECT post_id, message, permalink, likes, type, created_time FROM stream WHERE source_id = <PAGE ID> AND actor_id = <PAGE ID> LIMIT 3';
$facebook_data = $facebook->api(array(
                           'method' => 'fql.query',
                           'query' => $query,
                        ));

首先,这会返回一个空数组,经过一些小问题后,我意识到需要调整页面隐私设置以消除年龄限制。然后,每个人都可以看到该页面,这个解决方案非常有效。