使用graph api从fb获取最新帖子

时间:2014-10-03 06:27:49

标签: php facebook magento facebook-graph-api

我想从fb获取最新帖子,需要在我的网站上显示(magento)。我在facebook上注册了一个应用程序并试图通过使用网址获取帖子,但它提供了空数组

    require_once(Mage::getBaseDir('lib') . '/facebook/facebook.php');
    $facebook = new Facebook(array(
              'appId'  => 'xxxxxxxxxxxx',
              'secret' => 'xxxxxxxxxxxxxxxxxxxx',
            ));
    $fbid = "xxxxxxxxxx";
    $secret = "xxxxxxxxxxxxxxxxxxxxxxx";
    $token = 'https://graph.facebook.com/oauth/access_token?client_id='.$fbid.'&client_secret='.$secret.'&grant_type=client_credentials';
    $token = file_get_contents($token);
    $posts = json_decode(
                file_get_contents('https://graph.facebook.com/' . $fbid . '/feed?
                    access_token=' . $token
                )
            );

但是它提供了一个空数组,你能帮助我得到结果吗?为什么它是空的?

2 个答案:

答案 0 :(得分:1)

要从Facebook阅读Feed,您必须将用户登录到Facebook并询问用户read_stream权限。

Feed会是登录用户的Feed,可能不适合您网站的所有用户,除非您网站的每个用户都看到自己的Feed ...

答案 1 :(得分:0)

如果您有一个有效的访问令牌,您可以使用php graph api从任何公共页面获取Feed。您可以使用file_get_contents或curl方法调用api。

function curl_get_file_contents($URL) {
$ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $URL);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0); 
 curl_setopt($ch, CURLOPT_TIMEOUT, 400);
 $contents = curl_exec($ch);
 $err  = curl_getinfo($ch,CURLINFO_HTTP_CODE);
 curl_close($ch);
$contents=json_decode($contents,true);
if ($contents) return $contents;
else return FALSE;
}

$access_token = 'your accesstoken';
$url = " https://graph.facebook.com/$page_id/feed?access_token=$access_token";
$posts = curl_get_file_contents($url);

现在$ posts将包含页面中的所有最新帖子,您可以使用foreach来获取每个帖子。