JSON无法仅从一个Facebook页面获取数据

时间:2014-04-11 14:53:31

标签: php html json facebook facebook-graph-api

我正在建立一个网站,从几个facebook页面(数百个)加载喜欢的数量。我为此目的使用json查询。 除了一页之外,一切都很完美。 This页面。为什么呢?

在这里的代码中:A是作品,B不是

<?php
  $fblikeA  = json_decode(file_get_contents('http://graph.facebook.com/270129920400'))->{'likes'};
  $fblikeB  = json_decode(file_get_contents('https://graph.facebook.com/303612927736'))->{'likes'};
  echo '"None of the Above" likes = '.$fblikeA.'<br>';
  echo '"Viva Voce" likes = '.$fblikeB.'<br>';
?>

我在外部php编译器上尝试过,它完全正常工作,所以它可能是我服务器的问题。

你会怎么说呢?

2 个答案:

答案 0 :(得分:0)

它为我工作。

事情是file_get_contents不推荐,因为它可能会在请求太多事情时多次失败。

所以,你应该使用curl。您可以直接使用以下功能:

function GetJSONFromCurl($url)
{    
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
   curl_setopt($ch, CURLOPT_URL,$url);
   $JSON = curl_exec($ch);
   return $JSON;
}

使用它就像这样:

$fblikeA  = json_decode(GetJSONFromCurl('http://graph.facebook.com/270129920400'))->{'likes'};

那就是它!

答案 1 :(得分:0)

在php.ini中,如果不存在,可以添加以下行:

extension=php_openssl.dll
allow_url_fopen = On