使用Graph API获取朋友数据

时间:2012-01-23 13:38:39

标签: facebook facebook-graph-api

  1. 我需要使用下一个字段获取用户的朋友数据:id,name, 性别,生日,城市,国家,profileUrl,pic,pic_small, pic_big,is_app_user。

    在我使用FB.Data.query之前,现在它已被弃用。

     FB.Data.query('select uid, first_name, last_name, name, pic,
      pic_small, pic_big, birthday_date, sex, current_location,
     profile_url, is_app_user from user where uid in (select uid2 from
     friend where uid1 = {0}', uid).
    
  2. 如何获取正在使用应用的朋友?

  3. 我可以得到我需要的所有字段,但是例如对于图片我需要做额外的请求。我可以在单个请求中获得所有需要的字段吗?

3 个答案:

答案 0 :(得分:3)

您仍然可以使用FQLGraph API

来使用相同的JavaScript SDK查询
var query = 'SELECT uid, first_name, last_name, name, pic, pic_small, pic_big, birthday_date, sex, current_location, profile_url, is_app_user FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = ' + uid;
FB.api('/fql',{q:query}, function(response){
  console.log(response.data);
});

您肯定也可以使用Graph API获取几乎相同的数据,而不是使用FQL

FB.api('/'+uid+'/friends', {
  fields: 'id,first_name,last_name,name,birthday,gender,location,link,installed'
}, function(response){
  console.log(response.data);
});

您对这些详细信息有一些不同的名称和其他格式(前location),并且错过了结果中的图片详细信息,但这很简单,user图片在网址{{1}上可用}}

  

使用?type = square |小|正常|很大,要求不同的照片

答案 1 :(得分:0)

我也一直在使用PHP来解决这个问题。这就是我想出的:

$user_friends = $facebook->api('/me/friends?fields=installed');
$user_players = array();
foreach ($user_friends['data'] as $userfriend)
{
    if (array_key_exists('installed', $userfriend))
    {
        array_push($user_players, $userfriend);
    }
}    

答案 2 :(得分:0)

The Following Helps you to fetch user's friend details using graph api

NSString friendId =10020020 //Store Friend ID;

NSString * pRequestString = [NSString stringWithFormat:@"%@?fields=name,picture,work,hometown,birthday,devices,interests",friendId];


    [[FBRequest requestForGraphPath:pRequestString ] startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {

        NSLog(@"%@",result);

    }];