0

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

<?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?

4

2 回答 2

0

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

于 2013-03-28T15:25:51.710 回答
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,
                        ));

起初,这返回了一个空数组,经过一些故障排除后,我意识到需要调整页面隐私设置以消除年龄限制。然后每个人都可以看到该页面,并且该解决方案完美运行。

于 2013-04-01T21:39:33.490 回答