我想要做的就是在公司网站的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?
答案 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,
));
首先,这会返回一个空数组,经过一些小问题后,我意识到需要调整页面隐私设置以消除年龄限制。然后,每个人都可以看到该页面,这个解决方案非常有效。