使用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字符串
任何想法的人?
答案 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上访问其他用户数据有先决条件,如果是组页面,其中一个是请求数据的用户必须是该组的粉丝。
傻傻的我......