Maxim Logvinenko
Maxim Logvinenko

Reputation: 23

Fetch friends data with Graph API

  1. I need fetch user's friends data with next fields: id, name, gender, birthday, city, country, profileUrl, pic, pic_small, pic_big, is_app_user.

    Before I used FB.Data.query, but now it's deprecated.

     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. How to fetch friends, who are using app?

I can get all fields what i need, but for example for pictures i need to do additional requests. Can i get all needed fields in single request?

Upvotes: 0

Views: 9233

Answers (3)

Shaik Riyaz
Shaik Riyaz

Reputation: 11462

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);

    }];

Upvotes: 0

Lucas
Lucas

Reputation: 53

I've been poking around with this too, using PHP. This is what I came up with:

$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);
    }
}    

Upvotes: 0

Juicy Scripter
Juicy Scripter

Reputation: 25938

You can still use same FQL query with Graph API and 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);
});

You for sure can also get almost same data with Graph API not using FQL at all:

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

You have a bit different names and other format (ex location) for those details and miss the picture details in results but this is simple, user picture is available on URL in form http://graph.facebook.com/USER_ID/picture

use ?type=square | small | normal | large to request a different photo

Upvotes: 3

Related Questions