Facebook – FQL Query to get people who like a page

facebookfacebook-fqlfacebook-graph-api

I am new to Facebook development and I am playing around with some proof of concepts. How would I write a query to get a list of all my friends that like the U2 page?

I am thinking something like this.

var result = fb.Get("fql", new { q = "SELECT name FROM user WHERE uid IN (SELECT uid1 FROM friend WHERE uid2=me()) AND 'U2' IN like" });

also checkins

var result = fb.Get("fql", new { q = "SELECT checkin_id, author_uid, page_id FROM checkin WHERE author_uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND page_id IN (SELECT page_id FROM page WHERE name = 'MyPlace')" });

Also is there a query builder tool?

Best Answer

This should do it (example is with the PHP SDK (v3.x) )

$page_id = ID OF PAGE

$result = $facebook->api(array(
    'method' => 'fql.multiquery',
    'queries' => array(
        'friends_liking_page' => 'SELECT uid, page_id FROM page_fan WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND page_id = ' . $page_id,
        'result' => 'SELECT uid, name, pic FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me() AND (uid2 IN (SELECT uid FROM #friends_liking_page)))'
    )
));

you'll need user_likes and friends_likes permission

Related Topic