例如,这是“页面”:

http://www.facebook.com/facebook

该页面有一个RSS Feed(我想使用,理想情况下),但是a)它浏览器 - 嗅探它需要从脚本伪造用户代理程序来获取它 - 并且感觉真的很脆弱B )返回的数据的质量非常糟糕。

我可以使用图形API来获取相同的数据吗?此URL:

https://graph.facebook.com/facebook/feed

意味着我可以,json对我很好,尽管我从PHP脚本而不是客户端获取这一点。但是,当我尝试实际页面的URL时,我得到以下内容:

{
    "error": {
        "type": "OAuthAccessTokenException",
        "message": "An access token is required to request this resource."
    }
}
.

我不明白为什么我的页面需要访问令牌,而其他页面是“更多public” - 这是页面上的配置吗?如果没有,获取访问键的最佳方式

有帮助吗?

解决方案

如果我试图通过curl访问URL,它在PHP中适用于我。

$curlResponse = http('https://graph.facebook.com/facebook/feed');
$facebookFeed = json_decode($curlResponse['data'], true);

var_dump($facebookFeed);
.

使用此PHP功能:

function http($url) {
  $timeout = 30;
  $connectTimeout = 30;
  $sslVerifyPeer = false;

  $response = array();
  $ci       = curl_init();

  /* Curl settings */
  curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, $connectTimeout);
  curl_setopt($ci, CURLOPT_TIMEOUT, $timeout);
  curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ci, CURLOPT_HTTPHEADER, array('Expect:'));
  curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, $sslVerifyPeer);    
  curl_setopt($ci, CURLOPT_URL, $url);

  $response['http_code'] = curl_getinfo($ci, CURLINFO_HTTP_CODE);
  $response['api_call']  = $url;
  $response['data']      = curl_exec($ci);

  curl_close ($ci);

  return $response;
}
.

其他提示

更新:截至2011年6月3日,所有API请求都需要一个有效的应用程序或用户Access_Token。

对于更多信息: http://developers.facebook.com/blog/post/509/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top