I’m trying to get app users in javascript sdk.
Why this is not working?
var q = FB.Data.query('SELECT uid FROM user WHERE uid IN '
+ '(SELECT uid2 FROM friend WHERE uid1 = me()) AND is_app_user = 1');
q.wait(function(resp) {
console.log(resp);
}
);
That returns []
However that works well:
var q = FB.Data.query('SELECT uid2 FROM friend WHERE uid1 = me()');
q.wait(function(resp) {
var l = [];
for (var i in resp) {
l.push(resp[i].uid2)
}
var fql = 'SELECT uid FROM user WHERE uid IN (' + l.join(',') + ') and is_app_user = 1';
var q1 = FB.Data.query(fql);
q1.wait(function(resp) {
console.log(resp);
});
}
);
The problem with the second statement is that loads all friends into browser and it makes one more request. Why isn’t the first statement working?
try treating is_app_user as a boolean:
(works for me using just fql)
var q = FB.Data.query(‘SELECT uid FROM user WHERE uid IN ‘
+ ‘(SELECT uid2 FROM friend WHERE uid1 = me()) AND is_app_user’);