我正在使用here的代码登录facebook,这是我第一次使用Oauth和facebook图表api。获取登录用户的详细信息工作正常但是当我添加用于获取朋友列表的代码时,我得到了空数组。
<?php
include_once("config.php");
include_once("includes/functions.php");
$friends_list = '';
if(!$fbuser){
$fbuser = null;
$loginUrl = $facebook->getLoginUrl(array('redirect_uri'=>$homeurl,'scope'=>$fbPermissions));
$output = '<a href="'.$loginUrl.'"><img src="images/fb_login.png"></a>';
}else{
$user_profile = $facebook->api('/me?fields=id,first_name,last_name,email,gender,locale,picture');
$friends = $facebook->api('/me/friends','GET');//<-- this line is not working
$user = new Users();
$user_data = $user->checkUser('facebook',$user_profile['id'],$user_profile['first_name'],$user_profile['last_name'],$user_profile['email'],$user_profile['gender'],$user_profile['locale'],$user_profile['picture']['data']['url']);
if(!empty($user_data)){
$output = '<h1>Facebook Profile Details </h1>';
$output .= '<img src="'.$user_data['picture'].'">';
$output .= '<br/>Facebook ID : ' . $user_data['oauth_uid'];
$output .= '<br/>Name : ' . $user_data['fname'].' '.$user_data['lname'];
$output .= '<br/>Email : ' . $user_data['email'];
$output .= '<br/>Gender : ' . $user_data['gender'];
$output .= '<br/>Locale : ' . $user_data['locale'];
$output .= '<br/>You are login with : Facebook';
$output .= '<br/>Logout from <a href="logout.php?logout">Facebook</a>';
$friends_list = $friends;
}else{
$output = '<h3 style="color:red">Some problem occurred, please try again.</h3>';
}
}
?>
<!DOCTYPE html>
<html lang = "en">
<body>
<div class="container">
<div class="col-md-12">
<?php if($output){
echo $output."</br>";
print_r($friends_list);
}
?><br>
</div>
</div>
</body>
</html>
我的print_r($friends_list);
输出为Array ( [data] => Array ( ) )
。
我的facebook API版本是v2.6
,我在localhost上运行我的脚本。那么为什么我得到一个空列表的朋友列表,请提出任何更改建议。
答案 0 :(得分:2)
空数组是正确的结果。您也只能获得授权您的应用的朋友(具有user_friends
权限)。由于这是一个新的应用程序,我假设你的朋友都没有授权你的应用程序。虽然,您应该在响应中获得“total_count”。
更多信息:Facebook Graph Api v2.0+ - /me/friends returns empty, or only friends who also use my app