无法检索Facebook Wall Posts

时间:2011-03-27 01:42:20

标签: php curl facebook-graph-api

使用Facebook Graph API和我的应用凭据,我可以检索有效的令牌:

171372936213670|xxxxxxxxxxxxxxxxxx-650901429|x_xxxxxxxxxxxxxxx-xxxxxxxx

我用来检索Wall Posts的代码:

function getFbWallPosts($user, $limit=5) {
    $ci =& get_instance();
    $token = $ci->facebook->getAccessToken();
    $param = array(
        'access_token' => $token, 
        'limit' => $limit,
        );
    $posts = $ci->facebook->api("$user/feed", 'GET', $param);

    return $posts; 
}

该函数始终返回空的jSON结果:

{"data":[]}

还测试了使用cURL直接访问Wall Posts:

function fbrequest($url) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $output = curl_exec($ch);
    curl_close($ch);

    return $output;
}

......无济于事。

编辑:也尝试使用file_get_contents,但它也返回空的jSON:

function fbrequest($url) {
   $output = file_get_contents($url);
   return $output;
}

尝试直接在我的浏览器上粘贴请求字符串(没有用户登录到Facebook):

https://graph.facebook.com/AValidFacebookUsername/feed?access_token=171372936213670|xxxxxxxxxxxxxxxxxx-650901429|x_xxxxxxxxxxxxxxx-xxxxxxxx

...成功返回包含所有帖子的jSON字符串

任何想法的人?

2 个答案:

答案 0 :(得分:1)

...试

function curl($url){
    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    $content = curl_exec($curl);
    curl_close($curl);
    return $content;
}

如果没有运气,也许Apache不会使用SSL支持进行编译。

答案 1 :(得分:0)

我刚刚发现我正在编写的代码没有任何问题。问题在于我如何解释过程,最终解释结果。在FB上访问其他用户数据有先决条件,如果是组页面,其中一个是请求数据的用户必须是该组的粉丝。

傻傻的我......